2013-07-09 36 views
1

我有兩個模型優惠和國家他們沒有任何關係,但在我的新優惠表格中,我想選擇標籤來選擇優惠的國家。form_for使用2個模型的選擇幫助

這是我的新動作:

def new 
    @countries = Country.all 
    @offer = Offer.new 
end 

,這是我的看法

<%= form_for(@offer) do |f| %> 
    <%= f.select @countries %> #I know this is wrong. 
    <%= f.submit %> 
<% end %> 

任何想法。

感謝

回答

1

如果您需要選擇一個報價的國家,這意味着應該在模型中的關係。

class Offer < ActiveRecord::Base 
    belongs_to :country 
end 

class Country < ActiveRecord::Base 
    has_many :offers 
end 

查看:

<%= form_for :offer do |form| %> 
    <%= form.collection_select :country_id, Country.all, :id, :name %> 
    <%= form.submit %> 
<% end %> 

如果這不是你在做什麼請精煉您的問題之後。

+0

感謝馬特,這項工作,但我不明白爲什麼我必須在模型之間建立這種關係。 – Jean

+0

這是關係數據領域中一個非常基本的概念。如果你有兩個對象,一個需要選擇另一個對象的實例,那麼它們是相關的。舉個例子:一個'人類'可以有許多'寵物',爲了描述這個並且跟蹤一個人類寵物,每個'pet'的實例都有一個'human_id',這個寵物現在屬於一個人類。 Rails與這個概念密切合作。 – Matt