我最近向我的用戶添加了一個名爲auth_token
的新列,它是在創建新用戶時生成的。Rake遷移:如何向所有用戶的遷移中輸入auth_token
如何通過遷移向現有用戶添加auth_token
?
來源:http://railscasts.com/episodes/274-remember-me-reset-password
PS。我在http://guides.rubyonrails.org/migrations.html找不到這個,所以請不要寄給我。
我最近向我的用戶添加了一個名爲auth_token
的新列,它是在創建新用戶時生成的。Rake遷移:如何向所有用戶的遷移中輸入auth_token
如何通過遷移向現有用戶添加auth_token
?
來源:http://railscasts.com/episodes/274-remember-me-reset-password
PS。我在http://guides.rubyonrails.org/migrations.html找不到這個,所以請不要寄給我。
class DoThisThing < ActiveRecord:: Migration
def self.up
@users = Users.all
@users.each do |user|
user.auth_token = generate_token
user.save
end
end
def self.down
puts "non recoverable migration"
end
def generate_token
123456789
end
end
您可以將任何標準的Ruby/Rails代碼放入遷移中。只要注意stdin/out,以及是否需要將任何特定的庫加載到遷移的內存空間中。
你可以SHA登錄名和創建在每個用戶獲得獨特的東西,但是這樣的事情會起作用。 – wesgarrison
你能否解釋你的方法以及wesgarrison?瞭解各種做事方法總是很好的。 – imjp
上面提到的遷移不起作用。我在「up」部分收到錯誤:( – imjp
您是否試圖將'auth_token'添加到現有用戶? –
Yessir,我:) – imjp
我認爲你應該使用db/seeds.rb而不是添加一個新的遷移類。當需要更改數據庫結構而不是其內容時,您希望使用遷移。 –