如何在 Rails 页面上链接下拉菜单。两个下拉列表都来自数据库。
例如,如果第一个下拉列表是category
(即将形成category
桌子)。第二次下降,products
,也来自数据库,将根据第一个下拉菜单的选择进行填充?
您可以使用 collection_select 帮助程序创建下拉列表,并在一个下拉列表中选择一个值时,您可以将 ajax 请求发送回控制器操作,以使用新的下拉列表和产品更新页面的另一个元素,如下所示
<%= collection_select(:category, :some_category_method_name,
Category.all, :id, :category_name,
{:prompt => 'Select'},
{ :onchange => remote_function(:url => {:action => 'get_products'},
:with => "'id=' + this.value")})
%>
<div id='product_dropdown'></div>
所以基本上上面的代码所做的是,生成一个类别下拉列表,并在更改该下拉列表中选定的值时,将使用所选类别的 id 向操作“get_products”发送请求。然后,在该方法中,您可以获得该类别的所有产品,并使用具有产品下拉列表的新部分更新“product_dropdown”元素。
def get_products
@category = Category.find(params[:id)
render :update do |page|
page.replace_html 'product_dropdown',
:partial => 'partial_name_in_which_you_have_product_drop_down',
:locals => {:products => @category.products}
end
end
希望这可以帮助您入门。
如果您不确定 collection_select 是如何工作的这是文档 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001625
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)