1

大家好。

我的 rails 3 应用程序中有一个表单,其中一个字段是这样的“集合选择”

<div class="field">
<%= f.label :provider_id, "Provider" %>
<%= collection_select( :purchase_document, :provider_id, Provider.all, :id, :name) %>
</div>

这个想法是能够使用“集合选择”中的选定值添加“link_to”,即:

<div class="field">
    <%= f.label :provider_id, "Provider" %>
    <%= collection_select( :purchase_document, :provider_id, Provider.all, :id, :name) %> <%= link_to "Show", provider_path(***selected option from collection select***)%>

但是,我不知道如何获得选定的值。有没有一种方法可以做到这一点?

希望你能帮助我,谢谢

4

2 回答 2

3

不知道这是否是您想要做的,但是如果您想在用户从下拉菜单中选择不同的项目时动态更改链接,您需要使用客户端脚本来实现这一点,例如 Javascript(或 Coffeescript )。Ruby on Rails 只能执行服务器端脚本,任何与浏览器相关的动态行为都必须通过客户端脚本来完成。

于 2011-10-19T21:06:01.027 回答
0

在没有javascript的情况下完全可以在rails中进行。我们将所有参数保存在 params 中(即在 url 中),并使用“get”方法提交表单(而不是像往常一样发布),因此我们可以在 url 中包含所有这些参数。

以下示例应该可以在文本字段中写入名称并获取将名称作为参数传递给 url 的页面。(例如http://myapp.com:3000?user_name=andres&phone_number=123456

查看文件:

= form_tag(reloadindex_aplication_path, method: :get) do
  Name:
  = text_field_tag 'user_name', params[:user_name]
  Phone:
  = text_field_tag 'phone_number', params[:phone_number]
  = submit_tag "Search..."

控制器文件:

def reloadindex
  redirect_to aplication_path({:user_name => params[:user_name], :phone_number =>  params[:phone_number]})
end
于 2012-10-19T18:48:08.103 回答