2017-06-15 44 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')