我有一个脚手架,但它失败了,因为用户的文本长于字符串许可。所以我想更改rails g scaffold Dreams Dream:string
的{{1}}数据类型,
有可能吗?
答案 0 :(得分:1)
如果您已经迁移,请将其撤消:
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
。
答案 1 :(得分:0)
首先,脚手架应该是一个单数名词,如User
,在你的情况下,它应该是Dream
,除非你通过Dreams
,否则Rails将不允许--force-plural
} 选项。
其次,列名也应该是单数,但它可以是复数,但一般来说,rails约定是具有单个列名。
是的,你是对的!
rails g scaffold Dream dream:text
text
是您正在寻找的选项。如果您没有使用dream
指定任何内容,Rails会将其视为string
。