我有一个为组织创建新活动的表格。路由是:
resource :organisations do
resource :events
end
当我编辑一个事件时,成功后我会路由回事件控制器中的显示操作,如下所示:
def update
@organisation = current_user.organisations.find(params[:organisation_id])
@event = @organisation.events.find(params[:id])
if @event.update_attributes(params[:event])
# Handle a successful update.
flash[:success] = "Event updated"
redirect_to organisation_event_path
else
render 'edit'
end
end
当我创建一个事件时,我还希望它重定向到事件显示动作,实现如下:
def create
@organisation = current_user.organisations.find(params[:organisation_id])
@event = @organisation.events.create(params[:event])
if @event.save
flash[:success] = "Event added!"
redirect_to organisation_event_path
else
render 'new'
end
end
但是,这会产生以下错误:No route matches {:action=>"show", :controller=>"events"}
这是因为 URI 中没有事件 ID/名称,据我所知。可能是我对路径生成缺乏了解,但是如何达到我想要的结果呢?