如何以railsforms链接下拉列表

如何在rails页面上链接下拉列表。 这两个下降都将来自数据库。

例如,如果第一个下拉列表是category (来自表单category表)。 第二次下拉, products ,也来自db,将根据首次下拉选择填充?

您可以使用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")}) %> 

因此,基本上上面的代码所做的是,为类别生成下拉列表以及从此下拉列表更改所选值将向具有所选类别的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 是如何工作的,那么这里是文档

最简单的方法是使用一个提供分层菜单的Javascript小部件。

这是来自YUI的。 我确信还有其他工具包基于其他工具包。