2010-09-21 7 views
11

opiera się na następujących modelachRails 3 build select tag has_many belongs_to stowarzyszenie

class Company < ActiveRecord::Base 
    belongs_to :country 
end 

class Country < ActiveRecord::Base 
    has_many :companies 
end 

chcę mieć w swoich firmach/_form select tag zawierający wszystkie kraje

myślę że Company.new(params[:company]) w companies_controller#create można utworzyć powiązanie między firmą i wybranym krajem

Używam szyn 3.0.0, jaki jest najlepszy sposób, aby to osiągnąć?

dzięki za wgląd

Odpowiedz

31

collection_select powinno wystarczyć dla Ciebie:

collection_select(:company, :country_id, Country.all, :id, :name, :prompt => 'Please select country') 

Powyższy kod zakłada, że ​​tabela kraje mają kolumnę name. Jeśli nie, zastąp piąty parametr dowolną kolumną nazwy kraju.

oznacza, że ​​zmuszasz użytkownika do wyboru jednego kraju.

Znajdź więcej informacji w Rails API documentation.

+0

działa dobrze, dziękuję – denisjacquemin