为 :text 修改脚手架 :string
Modify scaffold :string for :text
我有一个脚手架,但它失败了,因为用户的文本比字符串允许的要长。所以我想更改数据类型,rails g scaffold Dreams Dream:string
为 Dreams:text
,
有可能吗?
如果您已经迁移,请撤消它:
rake db:rollback
rails destroy scaffold Dreams Dream:string
然后重做
rails generate scaffold Dreams Dream:text
rake db:migrate
如果您刚刚生成了脚手架,则不需要制作 rake db:rollback
和 rake db:migrate
。
如果这不是您最后一次迁移,您可以通过以下方式撤消它:
rake db:migrate:down VERSION=<version>
# version is the number of your migration file you want to revert
您可以创建一个新的迁移:
rails generate migration change_dream_type_in_dreams
并打开迁移以使用 change_column
def self.up
change_column :dreams, :dream, :text
end
def self.down
change_column :dreams, :dream, :string
end
最后,rake db:migrate
。
首先,脚手架应该是像User
这样的单数名词,在你的情况下,应该是Dream
,Rails不允许Dreams
,除非你传递 --force-plural
选项。
其次,列名也应该是单数,虽然它可以是复数,但rails一般的惯例是使用单数列名。
是的,你是对的!
rails g scaffold Dream dream:text
text
是您正在寻找的选项。如果您不使用 dream
指定任何内容,Rails 会将其视为 string
。
我有一个脚手架,但它失败了,因为用户的文本比字符串允许的要长。所以我想更改数据类型,rails g scaffold Dreams Dream:string
为 Dreams:text
,
有可能吗?
如果您已经迁移,请撤消它:
rake db:rollback
rails destroy scaffold Dreams Dream:string
然后重做
rails generate scaffold Dreams Dream:text
rake db:migrate
如果您刚刚生成了脚手架,则不需要制作 rake db:rollback
和 rake db:migrate
。
如果这不是您最后一次迁移,您可以通过以下方式撤消它:
rake db:migrate:down VERSION=<version>
# version is the number of your migration file you want to revert
您可以创建一个新的迁移:
rails generate migration change_dream_type_in_dreams
并打开迁移以使用 change_column
def self.up
change_column :dreams, :dream, :text
end
def self.down
change_column :dreams, :dream, :string
end
最后,rake db:migrate
。
首先,脚手架应该是像User
这样的单数名词,在你的情况下,应该是Dream
,Rails不允许Dreams
,除非你传递 --force-plural
选项。
其次,列名也应该是单数,虽然它可以是复数,但rails一般的惯例是使用单数列名。
是的,你是对的!
rails g scaffold Dream dream:text
text
是您正在寻找的选项。如果您不使用 dream
指定任何内容,Rails 会将其视为 string
。