2011-11-16 33 views
10

Tôi có một Mô hình được gọi là Danh mục và Sản phẩm Mô hình khác. Họ có has_many và thuộc về mối quan hệ. Nhưng mã trong quan điểm của tôiphương pháp collection_select đưa ra lỗi trong Rails 3.1.1

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

được đem lại cho tôi

undefined method `merge' for :name:Symbol 

Bất kỳ manh mối gì là sai với nó?

Trả lời

37

Rất có thể bạn có một cái gì đó như thế này:

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

f đã được gắn liền với product, bạn không cần phải bao gồm nó như là đối số đầu tiên của bạn, vì vậy nó chỉ nên là:

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

Hoặc, bạn không thể sử dụng f.:

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

Th đã giúp. Cảm ơn bạn. Bạn có thể giải thích khái niệm những gì đã sai ở đó không. Giúp đánh giá cao. –

+0

Sử dụng form_for loại bỏ sự cần thiết phải đặt ': product' trên mọi trường. Đọc này, nó nói về cách nó mở rộng phần 'f.': http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for –

+0

Tôi đã gặp phải lỗi này như tôi đã thử để triển khai form_helper tùy chỉnh để sử dụng với Twitter Bootstrap. Tôi là người mới với Rails, và khi tôi tìm thấy câu trả lời của bạn, nó thực sự mở mắt của tôi. Cảm ơn bạn đã khắc phục sự cố! Rất rất cảm ơn!! – MattSlay

Các vấn đề liên quan