Ruby on rails 3.2 rails3.2.13替代编辑表单

Ruby on rails 3.2 rails3.2.13替代编辑表单,ruby-on-rails-3.2,routes,Ruby On Rails 3.2,Routes,需要:两个表格用于两步流程的编辑 resources :evaluations do collection do get ':id/change', :action => 'change' 控制器 def change @evaluation = Evaluation.find(params[:id]) “编辑”具有指向更改操作的链接 <%= link_to 'Modify initial data', 'change' %> 但这也失败了。您需要的基本上

需要:两个表格用于两步流程的编辑

resources :evaluations do
  collection do
    get ':id/change', :action => 'change'
控制器

def change
  @evaluation = Evaluation.find(params[:id])
“编辑”具有指向更改操作的链接

<%= link_to 'Modify initial data', 'change' %>

但这也失败了。

您需要的基本上是一个向导。看看这个

更新 将表单分为两个(或多个)表单,根据需要分离表单属性。在控制器中添加相同数量的操作。设置表单路径以将数据提交到相应的操作

下面是一个例子:

表格1:

<%=form_for @object, :action => 'form1_action'%>
  < form1 attributes >

事实证明,这种设置是有效的

def update_changed_variables
这是不需要的。相反,非常简单

change.html.erb只调用表单partial,它调用相同的

<%= form_for @evaluation [...]

那是一条大道。然而,似乎有很多元思维/工作,尤其是验证。因为我只需要调用update_属性,所以我假设它们是一个更简洁的解决方案。当然,您可以根据需要分割表单,使用单独的操作来更新表单的特定部分并来回移动;也就是重新发明轮子。
<%=form_for @object, :action => 'form2_action'%>
 <form2 attributes >
<%end%>
form1_action
 save object
 redirect_to new_form2 if saved
end

form2_action
 save object
 redirect_to object_show (or another form) if saved
end
def update_changed_variables
<%= form_for @evaluation [...]