2012-11-04 73 views
1

我創建了一個名爲Categories的簡單模型,它連接到Platforms模型。如何在Rails中通過模型定義表單選擇值?

class Platform < ActiveRecord::Base 
    attr_accessible :name, :url, :country, :categories 
    belongs_to :category 
end 

class Category < ActiveRecord::Base 
    attr_accessible :name 
    has_many :platforms 
end 

我也已經成功地形式創造新的平臺:

<%= simple_form_for(@platform) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.input :name %> 
    <%= f.input :url %> 
    <%= f.input :country %> 
    <%= f.label :category %> 
    <%= f.collection_select(:category_id, @categories, :id, :name, :include_blank => "Please select") %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit %> 
    </div> 
<% end %> 

不幸的是,因爲模型類別是新的,下拉目前有 「請選擇」 僅值1 。我如何爲這個選擇添加新的值,最好是通過模型?

回答

1

注意與simple_form,就可以自動使用

<%= f.association :category %> 

這將自動填充從數據庫類別列表產生下拉。請參閱documentation瞭解更多提示。編輯: 類別只需要單獨添加。您可以使用db/seeds.rb腳本或通過rails控制檯手動爲數據庫分類。或者,您可以允許用戶通過單獨的窗體和控制器添加類別。

例如,要在控制檯中創建幾個類別,請從命令行運行rails c,然後運行Category.create!(name: "Name")獲取幾個名稱。

+0

我知道,但是如何將類別添加到數據庫中的類別列表中,目前它是空的,因爲我沒有定義任何類別。 – Cninroh

+0

請參閱編輯。您是否正在尋找在同一表單中添加平臺的同時創建類別的功能? – cdesrosiers

+0

我認爲控制檯是很有吸引力的,如果你也可以告訴我如何爲此添加一個新窗體,那麼也可能對其他查看這個窗體的人有幫助。 – Cninroh

0

在PlatformsController的new操作中,添加@categories = Category.all,因此您將擁有所有類別。

+0

這正是它目前如何設置,但我不知道如何添加新的類別到類別列表。 (基本上我該如何將它們添加到數據庫中?) – Cninroh

+0

Okey,如果您想要在平臺上同時創建新的類別,則可以使用[nested form](http://asciicasts.com/episodes/196-nested-模型外形部分-1)。 – Thanh

相關問題