2011-10-19 28 views
0

大家好。导轨3 - 使用选择的集合中的选定值生成“link_to”选择

我有一个形式,我的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***)%> 

但是,我不知道如何获得选定的值。 是否有轨道方式来做到这一点?

希望你能帮助我,谢谢

回答

3

不知道如果这是你想做的事,但如果你想动态改变的联系,用户选择从下拉菜单中选择不同的项目,您需要使用客户端脚本实现此功能,例如Javascript(或Cof​​feescript)。 Ruby on Rails只能执行服务器端脚本,任何与浏览器相关的动态行为都必须通过客户端脚本来完成。

+0

是的,这正是我要找的......你知道在哪里可以我找到一个例子? – Angelo

+0

看看http://marcgrabanski.com/articles/jquery-select-list-values,假设您是否使用jQuery(这是Rails 3.1中的默认值)。 –

+0

感谢您的帮助...我会尝试 – Angelo

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..." 

Controller文件:

def reloadindex 
    redirect_to aplication_path({:user_name => params[:user_name], :phone_number => params[:phone_number]}) 
end