Tre*_*ick 1 ruby ruby-on-rails
类user和event有has many: through关系。
class User < ActiveRecord::Base
has_many :user_events
has_many :events, :through => :user_events
end
class Event < ActiveRecord::Base
has_many :user_events
has_many :users, :through => :user_events
end
Run Code Online (Sandbox Code Playgroud)
在我的事件控制器中,我想为User_events创建一条记录,我现在使用以下命令进行记录:
def create
@event = Event.new(event_params)
@user = User.find(current_user.id)
@user_events = User.user_events.create
@user_events.user_id = @user.id
@user_events.event_id = @event.id
end
Run Code Online (Sandbox Code Playgroud)
但是,这感觉很沉重,因此我认为有一种更好,更“ Rails的方式”来做。正确的方法是什么?
def create
@event = Event.new(event_params)
if @event.save
@event.users << current_user
redirect_to event_path(@event)
else
render action: :new
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4583 次 |
| 最近记录: |