【发布时间】:2011-09-16 10:08:58
【问题描述】:
在 Rails 中,我生成了一个带有两个字符串的模型,并希望添加更多。我该怎么做呢?
【问题讨论】:
-
所以只需将字符串添加到迁移中,然后 rake db:migrate?
标签: ruby-on-rails attributes model attr
在 Rails 中,我生成了一个带有两个字符串的模型,并希望添加更多。我该怎么做呢?
【问题讨论】:
标签: ruby-on-rails attributes model attr
Active Record 将您的表列映射到模型中的属性,因此您无需告诉 rails 您需要更多,您要做的就是创建更多列,rails 会检测它们,属性将是自动添加。
您可以通过migrations向您的表格添加更多列:
rails generate migration AddNewColumnToMyTable column_name:column_type(string by default)
例子:
rails generate migration AddDataToPosts views:integer clicks:integer last_reviewed_at:datetime
这将生成一个文件:
db/2017.....rb
如果需要,打开并添加修改:
self.up
#add_column :tablename, :column_name, :column_type
add_column :posts, views, :integer
add_column :posts, clicks, :integer, default: 0
end
希望这会有所帮助。
【讨论】:
是的,@JCorcuera 的解决方案是适用的,但我建议向 Rails 应用更多信息来满足我们的要求。试试这个方法:
rails generate migration add_columnname_to_tablename columnname:datatype
例如:
rails generate migration add_password_to_users password:string
【讨论】:
如果您使用的是 Rails 4.x,您现在可以生成带有引用的迁移,如下所示:
rails 生成迁移 AddUserRefToProducts user:references
就像你在rails guides看到的一样
【讨论】:
你可以做的更简单:
rails g migration add_something_to_model something:string something_else:integer
【讨论】: