Ruby on rails 我应该把基于两个模型的方法放在哪里?

Ruby on rails 我应该把基于两个模型的方法放在哪里?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个用户模型和点模型。一个用户可以有许多点,点属于用户 用户可以获得积分,我只是不确定这些模型的方法应该放在哪里。例如,我希望有一个“add_points”方法向用户添加点。我认为应该在用户模型中使用,但我不确定 我希望能够做到用户1。添加积分(:挣的,金额) 或者类似的东西。我会按照你的描述去做 用户对象可以有一个add_points方法,在点对象上放置任何东西都没有意义,因为点对象是用来表示抽象概念的,而用户对象是用来表示特定用户的。将方法添加到用户时,您可能不会做更多的事情,只需连接到

我有一个用户模型和点模型。一个用户可以有许多点,点属于用户

用户可以获得积分,我只是不确定这些模型的方法应该放在哪里。例如,我希望有一个“add_points”方法向用户添加点。我认为应该在用户模型中使用,但我不确定

我希望能够做到用户1。添加积分(:挣的,金额)


或者类似的东西。

我会按照你的描述去做


用户对象可以有一个
add_points
方法,在点对象上放置任何东西都没有意义,因为点对象是用来表示抽象概念的,而用户对象是用来表示特定用户的。

将方法添加到用户时,您可能不会做更多的事情,只需连接到
create
方法,该方法与
有很多关系:

class User < ActiveRecord::Base

  has_many :points

  def add_point(reason, amount)
    points.create({:earned_for => reason, :amount => amount})
  end
end
class用户reason,:amount=>amount})
结束
结束

如果速记有用,那就太好了;否则,您可能只使用在关系中定义的helper方法。有关详细信息,请参见。

实际上,在这种情况下,您不需要任何其他方法来添加点:只要您的用户有多个点,您可以通过以下方式为用户添加点:

@user.points.create earned_for: reason, amount: amount