2011-02-16 28 views
9

Koleksiyonlara ait ürünlerim var. Bir koleksiyon sadece bir isim. Ürünler bir collection_id var.Başka bir modelden başka bir modele sahip açılır menü

Ürünlerin oluşturulması ve baskısı için kullanılan _form görünümümde, tüm koleksiyonun adını içeren bir açılır menüye sahip olmak isterim.

seçme (yöntem, seçimler, seçenekler = {}, html_options = {})

:

Sorun, orada form.for bağlı hiçbir seçme yöntemidir ve ben kullanmaya çalışıyorum görünüyor Doktordan

ancak bunu anlamıyorum. Bir form oluşturmak için bir metode yazmalı mıyım? Seçimler ve 2 seçenek nelerdir? Bir < seçeneği> etiketini doldurmak için iki parametre yeterli olmalıdır.

Ürünüme koleksiyon adıyla bir koleksiyon atamak için beni aşağıya doğru bir açılır menüden nasıl ayırabilirim?

cevap

21

Öncelikle modeller düzgün kurulum olduğundan emin olun, seçmek koleksiyonu kullanabilirsiniz:

<%= collection_select(:product, :collection_id, Collection.all, :id, :name) %> 

Ayrıca ilgili bilgi alabilirsiniz:

class Product 
    belongs_to :collection 
end 

class Collection 
    has_many :products 
end 

Sonra görünümüne seçmek koleksiyonu eklemek dokümantasyon here.

+0

Teşekkürler, benim modelleri zaten belongs_to ve has_many vardı.İyi çalışıyor, ancak, ikinci parametreleri anlamadım, doc bir yöntem olmalı diyor, ama bir değer. – Syl

+0

Doc, yöntemin adı, gerçek yöntem değil demektir. Bu nedenle, koleksiyondaki koleksiyon kimliğini, seçilen koleksiyonun kimliğini kullanarak doldurun ve seçeneğin metin değeri her koleksiyonun adı olmalıdır. –

+4

Sadece burada ek bir not, gerçek yöntem adı, model ismine bakılmaksızın "collection_select", bu iki parçanın, burada nasıl görünse de, ilişkili değildir. – whoughton

İlgili konular