Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何设计包含默认数据、种子数据以及用户生成数据的数据库表?_Ruby On Rails_Database_Database Design_Schema - Fatal编程技术网

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 %>