大家好。
我在我的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***)%>
但是,我不知道如何获得所选值。 有没有铁路方式来做到这一点?
希望你能帮助我,谢谢
答案 0 :(得分:3)
不知道这是否是您想要做的,但如果您想在用户从下拉菜单中选择不同的项目时动态更改链接,则需要使用客户端脚本实现此功能,例如Javascript (或Coffeescript)。 Ruby on Rails只能执行服务器端脚本,任何与浏览器相关的动态行为都必须通过客户端脚本来完成。
答案 1 :(得分: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