修改脚手架:字符串:text

时间:2015-06-16 18:12:42

标签: ruby-on-rails forms scaffolding

我有一个脚手架,但它失败了,因为用户的文本长于字符串许可。所以我想更改rails g scaffold Dreams Dream:string的{​​{1}}数据类型, 有可能吗?

2 个答案:

答案 0 :(得分:1)

如果您已经迁移,请将其撤消:

rake db:rollback
rails destroy scaffold Dreams Dream:string

重做它

rails generate scaffold Dreams Dream:text
rake db:migrate

如果您刚刚制作了脚手架,则不需要制作rake db:rollbackrake 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