Raz*_*Raz 4 ruby ruby-on-rails ruby-on-rails-4
我想使用 @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
Run Code Online (Sandbox Code Playgroud)
使用before_create回调:
class User < ActiveRecord::Base
before_create :create_password
private
def create_password
self.password = SecureRandom.base64(8)
end
end
Run Code Online (Sandbox Code Playgroud)