0
我有一個在Heroku中運行的應用程序。該應用程序的用戶模型包含電子郵件,密碼和其他一些列。我最近在本地添加了更多列到數據庫,包括隨機標記列,這是每個用戶的唯一標記。當創建一個用戶,下面的代碼運行在用戶模式:在記錄已存在之後向數據庫列添加信息
before_create :set_referer_url
...
private
def set_referer_url
begin
self.referer_url = rand(36**8).to_s(36)
end while User.exists?(:referer_url => self.referer_url)
end
對於所創建的任何新的用戶,他們將這種獨特的標記。但是,老用戶不會。我想把這個遷移(使用新的數據庫列)推向heroku。如何爲添加此新列之前創建的用戶添加此令牌。我聽說過很多關於耙子,但任何幫助將不勝感激。
順便說一句,我試着從鐵軌控制檯做局部添加令牌測試用戶執行以下操作:
User.find_by_email('xyz').set_referer_url
然而,這導致了NoMethod錯誤:私有方法。我怎樣才能在耙子中調用私有方法?整個rake過程看起來像爲了設置使用填充的新標記列的舊用戶?
謝謝!我如何在整個用戶模型的rake任務中管理它? – Alex
那麼你可以循環遍歷你創建之前創建的每個用戶,並調用它的方法 - 但是如果你有很多用戶可能是一個非常糟糕的主意。你可能想分批做。 – Russell