ruby-on-rails - 使用 Rails 创建新用户时创建随 secret 码

标签 ruby-on-rails ruby 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

最佳答案

使用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/

相关文章:

ruby-on-rails - 从最终结果栏删除 group_by 字段

ruby-on-rails - rvm 和 rbenv 在同一台机器上

ruby-on-rails - AJAX 渲染部分

ruby-on-rails - 如何使该 Action 抛出404?

ruby-on-rails - 即使在更新后,终端仍然显示旧版本的 rails

ruby-on-rails - rails : Subclass not registering as instance of parent class

ruby-on-rails - 如何将 Simple_Form 与嵌套资源一起使用?

javascript - AJAX+Rails 点击处理程序未绑定(bind)

ruby-on-rails - 每当 cron 中的 gem 命令不起作用时

ruby-on-rails - 您将如何为 `Iconv.new("UTF8//IGNORE", ...)` 习语编写测试?