从用户获取输入并在Rails中执行不同的操作

时间:2009-08-21 13:38:46

标签: ruby-on-rails

我在控制器中有3个不同的动作。每个参数都有不同的参数。 在应用程序中,所有3个都是由用户点击链接执行的。 现在我需要一个包含几个字段的表单,用户只需输入他们要查找的内容即可。当用户填写表单时,根据提供的内容,必须执行3个操作之一。

因此,简而言之,我需要从表单中获取字符串,确定需要哪个操作,并将字符串作为参数传递给3个操作之一。

对不起我是Rails的新手,如果你不明白我的问题,我会提供澄清:)

永远感谢。

[edit]

除参数外,所有3个动作的行为基本相同。 所以在索引页面中,我有3个动作的以下3个链接。

<h3>
<%= link_to "1. NPA", :controller => "trunks", :action => "npa" %> <br />
<%= link_to "2. Switch", :controller => "trunks", :action => "switches" %><br />
<%= link_to "3. Trunk Group CLLI", :controller => "trunks", :action => "clli" %>

假设您单击调用'npa'操作的第一个链接,您将看到由以下代码再次生成的链接列表:

<h3>
<% while j < @npa.size %>
  <% if @npa[j] != nil%>
    <%= link_to "#{@npa[j]}", :controller => "trunks", :action => "npanxx", :param1 => "#{@npa[j]}", :param2 => "#{@npa[j]}"%><br />
  <% end %>
  <% j += 1 %>
<% end %>
</h3>

在上面的代码中,有2个参数(param1和param2)被传递给下一个动作'npanxx'。

我需要实现的与上面相同,但是从表单字段中获取参数。

根据用户提供的参数,我想我可以让应用程序决定必须执行哪个操作。例如,上述操作的参数都是数字,但对于第二个操作,参数都是字符串。

所以它只是归结为如何从用户那里获取输入,并将它们传递给控制器​​中的动作。

感谢大家的帮助:)。

2 个答案:

答案 0 :(得分:0)

您可以将表单提交给控制器操作,该操作执行“需要操作的标识”,然后重定向到特定于传递的参数的操作。

我认为更先进的方法是在路由配置中添加“识别操作”逻辑。

答案 1 :(得分:0)

关于你向Dylan McClung提出的关于如何将表单提交给控制器的问题,一个简单的submit_to_remote(如果你想要AJAX响应)或submit_tag(如果你想要标准的HTTP响应)

Submit To Remote

Submit Tag