我有事件和用户/团队。
class Event
has_many :users, :through => :registrations
end
class User
has_many :events, :through => :registrations
end
class Registration
belongs_to :users
belongs_to :events
end
当我注册用户时,我会像这样将他们连接到事件:
@event.users << @user
这是否隐含地为用户/事件创建了注册对象?我在我的注册迁移中放了一个 :goal_amount 列,我希望能够在创建注册时设置 :goal_amount。我是否需要显式创建注册(即:Registration.create(:user_id => @user.id, :event_id => @event.id, :goal_amount => params[:goal_amount])
实现这一目标?
最佳答案
是的,将用户添加到事件会自动创建关系对象。
是的,如果您希望在中间表中添加该参数,则必须手动创建关系。
让它看起来更酷的一个解决方案是在事件对象中创建一个 add_user
方法。
def add_user user, goal_amount
Registration.create({
:user => user,
:event => self,
:goal_amount => goal_amount)
})
end
然后你只需要调用
@event.add_user @user, 100
关于ruby-on-rails - 加入 Tables & Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369341/