Ruby on rails Rails最佳实践:模型中的公共方法

Ruby on rails Rails最佳实践:模型中的公共方法,ruby-on-rails,ruby-on-rails-4,private-methods,Ruby On Rails,Ruby On Rails 4,Private Methods,我是一个新手,我想知道我的应用程序是否会在不久的将来失败,因为我不了解Rails的所有细节。所以我想问你:-) 我有一个用户和一个产品模型,我想创建一个可以这样使用的方法: @user.take!(产品) 所以我在我的用户模型中写了以下几行: def take!(产品) product.owner=self 结束 但是如果我在我的模型的私有部分这样做,它就不起作用了。如果我在公共部分这样做,我不知道是否推荐。我在问自己,在控制器或助手中这样做是否更好 你能给我点启发吗?如果需要公开的话,写公

我是一个新手,我想知道我的应用程序是否会在不久的将来失败,因为我不了解Rails的所有细节。所以我想问你:-)

我有一个用户和一个产品模型,我想创建一个可以这样使用的方法:

@user.take!(产品)
所以我在我的用户模型中写了以下几行:

def take!(产品)
product.owner=self
结束
但是如果我在我的模型的私有部分这样做,它就不起作用了。如果我在公共部分这样做,我不知道是否推荐。我在问自己,在控制器或助手中这样做是否更好


你能给我点启发吗?

如果需要公开的话,写公开的方法是可以的,这不是绞刑之类的。不过,您描述的方法不应该在用户身上——没有必要将产品逻辑放在用户模型中,通过将产品传递到用户方法来更改产品肯定是不好的。这也是一个很短的方法,所以把它放到一个方法中并不能得到很多东西——这只是意味着如果我看到
take


将此逻辑放在控制器中会更好、更清晰,但一般来说,如果公共方法不能是私有的,那么它们就没有问题。

谢谢!在这种情况下,我必须在哪个控制器中写入def?