我正在尝试重命名Rails项目中的列,并且我生成了迁移文件和bundle exec rake db:migrate
。
程序是这样的。
生成文件,
bin/rails g migration RenameUserTwitterNameToName
并使用列名
编写方法def change
rename_column :users, :twitter_name, :name
end
最后执行rake任务。
bundle exec rake db:migrate
虽然效果很好,但我需要修改与列相关的控制器。
例如,如果有如下代码,我需要将方法find_by_twitter_name
更改为find_by_name
@user = User.find_by_twitter_name(name)
有没有办法自动修改上面的控制器?
答案 0 :(得分:0)
无法自动修改控制器,但您可以为属性创建别名,包括getter,setter和query方法。
class User < ActiveRecord::Base
alias_attribute :twitter_name, :name
end
http://api.rubyonrails.org/classes/Module.html#method-i-alias_attribute