我想在 js 中创建一个向导。
steps :first_step,
:second_step
在我的“controller_step”中
def show
case step
when :first_step
@r = R.new
when :second_step
end
render_wizard
end
def update
case step
when :first_step
@r = R.new(r_params)
when :second_step
end
render_wizard @r
end
第一步更新后出现问题。我收到以下错误消息:
“缺少模板 controller_step/second_step、application/second_step with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw , :ruby, :coffee, :jbuilder]}.".
如何强制加载 js 模板?我会加载“second_step.js.erb”。
我试图改变更新方法:
respond_to do |format|
format.js { render :js => ( render_wizard @r ) }
end
当然我得到以下错误:
“AbstractController::DoubleRenderError in ...Controller#update 渲染和/或重定向在此操作中被多次调用。请注意,您只能调用渲染或重定向,每个操作最多调用一次。另请注意,既不重定向也不渲染终止动作的执行,所以如果你想在重定向后退出动作,你需要做一些类似“redirect_to(...) and return”的事情。
我还尝试更改代码(更新中):
respond_to do |format|
format.js { render :js => ( render_wizard @room_types and return ) }
end
我遇到了同样的错误( ... application/second_step with {:locale=>[:en], :formats=>[:html] .... )
附言
鉴于第一步:
<%= form_for(@r, url: wizard_path, method: :put, remote: true) do |f| %>
....
<%= f.submit "Submit", class: "btn btn-default" %>
<% end %>
我该如何解决?提前致谢