使用参数创建新模型实例 (Rails)

Creating new model instance with paramethers (Rails)

我需要从用户的访客页面创建新事件,Event.visitor_id 应该是 User.id

Event.rb

def create
@event = current_user.owner_events.new(event_params)
end

protected

def event_params
params.require(:event).permit(:visitor_id)
end

我需要更正以下无效的视图:

<%= link_to "Create event with this user", events_path(visitor_id: @user.id), method: :post %>

我在 EventsController#create

中得到:ActionController::ParameterMissing

试试看(你忘了添加 event 键):

<%= link_to "Create event with this user", events_path(event: { visitor_id: @user.id }), method: :post %>

有关详细信息,请阅读 'strong parameters' gem documentation

我只需要将 .to_i 添加到 @user.id

<%= link_to "Create event", events_path(:event =>{:visitor_id => @user.id.to_i} ), :method => :post %>