我有一个简单的用户表,我想在我的用户表中添加一个说明永久链接的新字段。此永久链接将使用以下代码更新所有用户
name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
。我想创建一个迁移文件,使用上面的代码更新所有用户永久链接字段,以便旧用户可以设置永久链接,我会为新用户使用after_create方法。
答案 0 :(得分:0)
我想你可以尝试这样的事情:
class User < ActiveRecord::Base
before_create :set_permalink
def set_permalink
permalink = name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
end
end
这实际上使用before_create
回调,它将解决新用户的permalink
字段的派生问题。我认为这是你真正需要的。
在您的迁移文件中......
class UpdateUsersPermalink < ActiveRecord::Migration
def self.up
User.reset_column_information
User.all.each do |u|
if u.permalink.nil?
u.set_permalink
u.save!
end
end
end
...
end
..它将处理尚未设置此字段的任何现有User
。