Ruby on rails 如何设计包含默认数据、种子数据以及用户生成数据的数据库表?
我有一个带有一组状态的表:Ruby on rails 如何设计包含默认数据、种子数据以及用户生成数据的数据库表?,ruby-on-rails,database,database-design,schema,Ruby On Rails,Database,Database Design,Schema,我有一个带有一组状态的表: id: uuid user_id: uuid name: text 每个用户从相同的默认状态开始,比如说要做的事,正在进行,完成。用户可以创建自己的状态(并可能更改默认状态的名称) 似乎有两种选择: 创建一组共享默认值,并将user\u id保留为null。这种方法的困难在于,如果用户更新了默认状态的名称,我就必须创建一个新状态并更新所有关联 为每个用户创建一组默认值。明显的缺点是我会创建更多的数据,但这会使逻辑简单得多 迁移的最佳方法是什么? class Crea
id: uuid
user_id: uuid
name: text
每个用户从相同的默认状态开始,比如说要做的事
,正在进行
,完成
。用户可以创建自己的状态(并可能更改默认状态的名称)
似乎有两种选择:
user\u id
保留为null
。这种方法的困难在于,如果用户更新了默认状态的名称,我就必须创建一个新状态并更新所有关联class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :status, default: "To Do", null: false
t.timestamps
end
end
end
在您的users/form.html.erb中,您将有(使用simple\u form
gem的示例):
感谢您的回答,您应该在原始问题中添加,但此模型也可以被其他模型引用,即默认行将与其他模型关联。请阅读“最佳”是如何计算的?
STATUSES = ["To Do", "Done"]
<%= simple_form_for(@user) do |f| %>
<%= f.input :name %>
<%= f.input :status, collection: User::STATUSES
<%= f.button :submit %>
<% end %>