【发布时间】:2010-10-12 02:10:04
【问题描述】:
我有一个任务模型,它有名称、描述、它所属的过程、位置和类别。
由于只有两个不同的类别,因此我创建了特定于类别的附加控制器,因为它们需要区别对待。当我在其中一个类别控制器中提交编辑表单时,它会重定向回主任务控制器显示操作。它似乎一起跳过了类别控制器(我只是在每个阶段渲染文本来测试这个,它甚至没有触及更新操作)。我查看了呈现的 html 输出,并且表单被提交到错误的控制器,但我看不到任何改变它的方法。
那么如何在rails中设置表单动作呢?
子类控制器编辑:
def edit
@task = Task.find(params[:id])
@procedures = Procedure.find(:all, :conditions => "comdecom = true")
@gettasks = Task.all
end
这会渲染类别视图编辑:
<div id="page">
<h1>Editing Commissioning task</h1>
<%= render :partial => 'form' %>
<%= link_to 'Back', com_tasks_path %>
</div>
使用部分“形式”:
<div id="form">
<% form_for(@task) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p> To format your text you can use either html or the redcloth textile markup language. A full list of commands can be found at <a href="http://redcloth.org/"> http://redcloth.org/ </a></p>
<p>
<%= swapselect :task, @task, :procedure, @procedures.map {|procedure|[procedure.name, procedure.id]} %>
</p>
<p>
<%= f.label :position, 'Position after:' %><br />
<%= f.collection_select "position", @gettasks, :position, :name %>
</p>
<p>
<%= f.hidden_field :comdecom, :value => '1' %>
<%= f.hidden_field :active, :value => '1' %>
</p>
<p>
<%= f.submit 'Submit' %>
</p>
<% end %>
</div>
当您点击提交按钮时,它会将您带到任务控制器。
【问题讨论】:
-
你能展示你的代码吗...我认为这将有助于更快地解决你的问题
标签: ruby-on-rails forms redirect controller