小编Raz*_*Raz的帖子

使用 Rails 创建新用户时创建随机密码

我想使用 @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)

ruby ruby-on-rails ruby-on-rails-4

4
推荐指数
1
解决办法
602
查看次数

未定义的方法total_pages'用于数组will_paginate rspec

我已将gem' will_paginate'和gem' will_paginate-bootstrap'添加到我的应用程序中,它运行正常.但是,由于RSpec测试,我收到此错误消息.

Failure/Error: render
     ActionView::Template::Error:
       undefined method `total_pages' for #<User::ActiveRecord_Relation:0x007f8c238a97b8>
Run Code Online (Sandbox Code Playgroud)

这是Rspec代码:

 it "renders a list of users" do
    render

    page = Capybara::Node::Simple.new(rendered)

    expect(page).to have_content("Smith, Agent admin@somewhere.com Site Admin")
    expect(page).to have_content("Johnson, Bob manager.email@elsewhere.com The Company Name")
  end
Run Code Online (Sandbox Code Playgroud)

users_controller.rb

def index
    @per_page = params[:per_page] || 10
    @users = User.paginate(:page => params[:page], :per_page => @per_page).order('last_name  ASC')
end
Run Code Online (Sandbox Code Playgroud)

index.html.erb

<div class="pull-right">
  Records per page
  <%= select_tag :per_page, options_for_select([10,25,50,100], params[:per_page].to_i),
       :onchange => "if(this.value){window.location='?per_page='+this.value;}" %>
</div>

<%= page_entries_info @users %>

<br>
<div class="pull-right"> …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails ruby-on-rails-4

1
推荐指数
1
解决办法
1207
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

ruby-on-rails-4 ×2

rspec ×1