如何根据编辑模型的表单返回不同的响应

时间:2011-10-18 20:11:38

标签: ruby-on-rails ruby ruby-on-rails-3

我是Ruby on Rails的新手,我有一个问题。

我有两个编辑相同模型的表单,但在更新方法中,我必须根据提交的表单给出不同的JS响应。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

只需在表单中添加hidden输入字段,指定其来源。

然后,在您的控制器中,通过params[:field_name]

访问此字段

使用以下内容创建表单:

<%= f.hidden_field :origin, :value => "this_form" %>

这将呈现如下:

<input name="origin" type="hidden" value="foo"/>

在您的控制器中,检查此隐藏字段的值,并使用render呈现您的JS响应(或您特别使用的任何内容)。有关详细信息,请参阅Layouts and Rendering

if params[:origin] == "foo"
   render  ...
else
   render ...
end

答案 1 :(得分:4)

有两种不同的方法可以解决这个问题:

  1. 您可以在表单中放置一个隐藏变量,然后检查控制器以查看提交的表单。

  2. 您还可以使用两种不同的控制器方法来处理不同的行为。

  3. 在不了解您的代码的情况下,很难说哪种方式更清晰。