与params传球和路线混淆

时间:2015-03-18 15:45:04

标签: ruby-on-rails

我正在结社 group has_many events

我在show group view中有这个方法

= link_to 'Create Event', new_event_path(@group)

我的新事件方法

  def new     
     @event = Event.new(city: current_user.profile.city, group_id: params[:id])
  end

显示未知网址  本地主机:3000 /事件/ new.17

也是group_id:params [:id]无效

因为我是ror的新手,请告诉我原因 提前谢谢

1 个答案:

答案 0 :(得分:1)

您没有指定父资源,因此您无法在new_event_path网址帮助程序中将其用作参数,并生成类似' / parent_resource /的路径:parent_resource_id / events / new&# 39 ;.因此,在您的情况下,只需使用任何网址参数,即group_id

= link_to 'Create Event', new_event_path(group_id: @group)

它会生成网址:/events/new?group_id=17

在这种情况下,操作将使用group_id参数:

def new     
   @event = Event.new(city: current_user.profile.city, group_id: params[:group_id])
end