我已经阅读了很多文档,但由于某种原因,我仍然不清楚这一点。
我有以下设置,一个用户表,一个事件表,以及通过用户和事件上的HABTM关系定义的M2M表Events_Users。当用户在事件索引或显示页面上注册事件时,是否应该转到为Events_Users创建的控制器中的新操作?如果是这样,它应该转到仅用于将参数传递给Create操作的New操作吗?或者它应该直接进入创建行动?
非常感谢有关最佳做法的任何澄清!
由于
答案 0 :(得分:0)
我认为有一种方法可以做到以下几点:
我会接受这个事件以这种方式将用户作为嵌套资源:
class Event < ActiveRecord::Base
has_many :users
accepts_nested_attributes_for :events
end
这样您可以在EventsController中定义自定义操作,如下所示:
class ApplicationController < ActionController::Base
def add_user_to_event
@event = Event.find(params[:event])
@user = User.find(params[:user])
@event.users << @user
@event.save
end
end
在您的表单中,您可以将此操作与当前事件和用户作为参数进行link_to。