代码之家  ›  专栏  ›  技术社区  ›  Earlz

与其他模型绑定的Rails中的下拉列表

  •  1
  • Earlz  · 技术社区  · 15 年前

    我有类别和产品型号。我希望每个产品都属于一个类别。我怎样才能有一个下拉列表,以便您可以从产品页面中选择一个类别?

    我已经做好了一切工作:

    <%= collection_select(:category, :id, @categories, :id, :title, options ={:prompt => "-Select a category"}, :class =>"category") %>
    

    并使用

    @product.category_id = params[:category][:id]
    

    在我的更新/创建控制器方法中

    但它感觉笨重,而且它不“读取”来自 @product 当编辑的时候,我不知道如何做到这一点。我做错什么了吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Slobodan Kovacevic    15 年前

    collection\u select的前两个参数应该是您试图更新的模型及其属性。所以要这样做:

    <%= collection_select(:product, :category_id, @categories, :id, :title, options ={:prompt => "-Select a category"}, :class =>"category") %>
    

    这将更新@product.category_id(这样您就不必手动执行此操作),它还将正确读取以前选择的值。