0
我有一个简单的用户表,我想添加一个新的字段到我的用户表,说永久链接。对于所有用户,此固定链接将更新为以下代码: name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
。我想创建一个迁移文件,使用上面的代码更新所有用户永久链接字段,以便旧用户设置永久链接,并为新用户使用after_create方法。用迁移文件更新数据库
我有一个简单的用户表,我想添加一个新的字段到我的用户表,说永久链接。对于所有用户,此固定链接将更新为以下代码: name.downcase.gsub(/[^0-9a-z]+/, ' ').strip.gsub(' ', '-')
。我想创建一个迁移文件,使用上面的代码更新所有用户永久链接字段,以便旧用户设置永久链接,并为新用户使用after_create方法。用迁移文件更新数据库
我想你可以尝试这样的事:
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
S的照顾。
谢谢我会马上试试 – Uchenna 2011-12-15 01:25:43