【问题标题】:collection_select method gives error in Rails 3.1.1collection_select 方法在 Rails 3.1.1 中给出错误
【发布时间】:2023-03-18 22:10:01
【问题描述】:

我有一个名为 Category 和其他 Model Product 的模型。他们有 has_many 和 belongs_to 关系。 但在我看来代码

    <p><%= f.collection_select(:product, :category_id, Category.all, :id, :name)%>

给我

 undefined method `merge' for :name:Symbol

有什么问题吗?

【问题讨论】:

    标签: ruby-on-rails-3 ruby-1.9.2 form-helpers


    【解决方案1】:

    你可能有这样的事情:

    <%= form_for @product do |f| %>
    

    因为f 已经绑定到product,您不需要将它作为您的第一个参数,所以它应该是:

    <%= f.collection_select :category_id, Category.all, :id, :name %>
    

    或者,你不能使用f.

    <%= collection_select :product, :category_id, Category.all, :id, :name %>
    

    【讨论】:

    • 这有帮助。谢谢你。您能否从概念上解释那里出了什么问题。帮助表示赞赏。
    • 使用 form_for 消除了在每个字段上放置 :product 的需要。阅读这篇文章,它讨论了它如何扩展f. 部分:api.rubyonrails.org/classes/ActionView/Helpers/…
    • 我在尝试实现用于 Twitter Bootstrap 的自定义 form_helper 时遇到此错误。我对 Rails 有点陌生,当我找到你的答案时,它真的让我大开眼界。谢谢你,问题已解决!很多很多,谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    相关资源
    最近更新 更多