2017-06-15 31 views
0

我想爲我的Rails發佈應用添加一些類別。在Rails 5模型中使用默認值

我希望他們爲固定值,因此用戶可以從下拉菜單中選擇特定類別的選擇。我的遷移文件如下所示:

class CreateCategories < ActiveRecord::Migration[5.1] 
    def change 
    create_table :categories do |t| 
     t.string :name 
     t.timestamps 
    end 
    end 
end 

在我的類別模型中添加一些固定值需要做些什麼?

+0

什麼數據庫您使用的? – hashrocket

回答

1

您可以在Category模型中設置像NAMES = %w(category1 category2)這樣的常量,添加包含驗證並獲取像這樣的下拉列表的值:Category::NAMES。在這種情況下,不要忘記添加數據庫索引。顯然你會查詢與某個類別相關的帖子。

有雖然通過ActiveRecord::Enum提供另一種選擇。它允許你在Post裏面聲明類別字段,而不用Category模型。如果你想添加一些預定義的類別,那麼這個被稱爲「種子數據」

class Post < ActiveRecord::Base 
    enum category: [:category1, :category2] 
end 
+0

非常感謝您的回答。我不知道'ActiveRecord :: Enum',我正在尋找這樣的東西:) – Shofi

0

:如果您不需要的代碼庫(一些管理面板)以外的管理類別,我會推薦這 Migrations and Seed data

要在創建數據庫之後添加初始數據,Rails具有內置的「種子」功能,可使該過程快速輕鬆。在開發和測試環境中經常重新加載數據庫時,這特別有用。這很容易上手使用此功能:只需填寫db/seeds.rb一些Ruby代碼,並運行rails db:seed

Category.create(name: 'category 1') 
Category.create(name: 'category 2')