好的,所以我不太了解 wicked gem 中的嵌套路由。
到目前为止,我有这个。我不确定所有内容是否都在正确的文件夹中,或者我是否做对了。
路线.rb
resources :events
resources :events do
resources :build, controller: 'events/build'
end
控制器/events_controller.rb
def create
@event = Event.new(event_params)
if @event.save
flash[:success] = "Event Created!"
redirect_to event_build_path(event_id: "event", id: @event.id)
# previously had redirect_to event_build_path without parameters)
else
render 'new'
end
end
控制器/事件/build_controller.rb
class Events::BuildController < ApplicationController
include Wicked::Wizard
steps :details, :visibility
def show
@event = Event.find(params[:event_id])
render_wizard
end
end
意见/构建/details.html.erb
<%= form_for @event do |f| %>
#blab blah
<% end %>
我一开始event_build_path
没有参数,我有这个错误
No route matches {:action=>"show", :controller=>"events/build"} missing required keys: [:event_id, :id]
受到这个带有参数的 Rails wicked gem 重定向的影响,但不完全理解路由
我没有设置 event_id,我也不明白 wicked 如何跟踪通过 id 的步骤(或者如果它的 event_id)。
由于我的对象(事件)尚未创建,“event_id”是什么,最后的id代表什么?