我在控制器中有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'。
我需要实现的与上面相同,但是从表单字段中获取参数。
根据用户提供的参数,我想我可以让应用程序决定必须执行哪个操作。例如,上述操作的参数都是数字,但对于第二个操作,参数都是字符串。
所以它只是归结为如何从用户那里获取输入,并将它们传递给控制器中的动作。
感谢大家的帮助:)。
答案 0 :(得分:0)
您可以将表单提交给控制器操作,该操作执行“需要操作的标识”,然后重定向到特定于传递的参数的操作。
我认为更先进的方法是在路由配置中添加“识别操作”逻辑。
答案 1 :(得分:0)
关于你向Dylan McClung提出的关于如何将表单提交给控制器的问题,一个简单的submit_to_remote(如果你想要AJAX响应)或submit_tag(如果你想要标准的HTTP响应)