我想使用 @value = SecureRandom.base64(8) 来设置仅在创建新用户时提交的密码。我不希望它在我编辑用户时发生。所以我的问题是我在哪里使用 users_controller.rb 或 models/user.rb 中的 SecureRandom.base64(8)
这是users_controller.rb
def create
if user.save
user.send_invitation
redirect_to root_url, notice: "Signed up!"
else
render :new
end
end
def destroy
@user = User.find(params[:id])
if @user.destroy
redirect_to root_url, notice: "User was deleted successfully!"
end
end
def edit
respond_with(user)
end
def update
@user.password_confirmation = User.value
params[:user].delete(:password) if params[:user][:password].blank?
params[:user].delete(:password_confirmation) if params[:user][:password_confirmation].blank?
if user.save
redirect_to users_path, :notice => "Saved your updates!"
else
render :edit
end
end
最佳答案
使用before_create
回调:
class User < ActiveRecord::Base
before_create :create_password
private
def create_password
self.password = SecureRandom.base64(8)
end
end
关于ruby-on-rails - 使用 Rails 创建新用户时创建随 secret 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076198/