Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby @用户变量为空。忘记传递will_paginate的集合对象?_Ruby_Variables_Factory Bot_Railstutorial.org_Isnullorempty - Fatal编程技术网

Ruby @用户变量为空。忘记传递will_paginate的集合对象?

Ruby @用户变量为空。忘记传递will_paginate的集合对象?,ruby,variables,factory-bot,railstutorial.org,isnullorempty,Ruby,Variables,Factory Bot,Railstutorial.org,Isnullorempty,问题本地主机:3000/用户/不会显示 我很谦虚地进入,因为我正试图第一次通过rails教程。我在第10章,我已经解决这个问题5个小时了。当我尝试访问localhost:3000/users/时,我得到一个错误(我相信这与factory\u girl有关),该错误解释了@users变量为空,并且我忘记传递will\u paginate的集合对象 我目前正在阅读第10章第10.23节,每次跑步时: $bundle exec rake db:reset$bundle exec rake db:pop

问题本地主机:3000/用户/不会显示

我很谦虚地进入,因为我正试图第一次通过rails教程。我在第10章,我已经解决这个问题5个小时了。当我尝试访问localhost:3000/users/时,我得到一个错误(我相信这与factory\u girl有关),该错误解释了@users变量为空,并且我忘记传递will\u paginate的集合对象 我目前正在阅读第10章第10.23节,每次跑步时:

$bundle exec rake db:reset$bundle exec rake db:populate $bundle exec rake数据库:测试:准备

我在解释这件事时出错了

雷克流产了! 已注册工厂:micropost

这是我第二次尝试这一章,因为我第一次遇到问题,从第9章开始。请提供帮助,并在提供指导时清晰详细。我很高兴发布任何有帮助的文件

这是我的index.html.erb-我将它们保存为html,是否应该将它们保存为ruby文件

<% provide(:title, 'All users') %>
<h1>All users</h1>

<%= will_paginate %>

<ul class="users">
  <%= render @users %>
</ul>

<%= will_paginate %>

所有用户
这是我的用户控制器

class UsersController < ApplicationController
  before_filter :signed_in_user, only: [:index, :edit, :update, :destroy]
  before_filter :correct_user,   only: [:edit, :update]
  before_filter :admin_user,     only: :destroy

  def show
    @user = User.find(params[:id])
    @microposts = @user.microposts.paginate(page: params[:page])
  end
end

   def new
    @user = User.new
   end

 def index
    @title = "All users"
    @users = User.paginate(:page => params[:page])
  end

def create
    @user = User.new(params[:user])
    if @user.save
      sign_in @user
      flash[:success] = "Do more of the things you love!"
      redirect_to @user
    else
      render 'new'
    end
  end

def edit
  end

  def update
    if @user.update_attributes(params[:user])
      flash[:success] = "Profile updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
    end
  end

  def destroy
    User.find(params[:id]).destroy
    flash[:success] = "User destroyed."
    redirect_to users_url
  end

private

    def signed_in_user
      unless signed_in?
        store_location
        redirect_to signin_url, notice: "Please sign in."
      end
    end

    def correct_user
      @user = User.find(params[:id])
      redirect_to(root_path) unless current_user?(@user)
    end

    def admin_user
      redirect_to(root_path) unless current_user.admin?
    end
class UsersControllerparams[:page])
结束
def创建
@user=user.new(参数[:user])
如果@user.save
在@user中登录
flash[:success]=“多做你喜欢的事情!”
将_重定向到@user
其他的
呈现“新”
结束
结束
定义编辑
结束
def更新
如果@user.update_属性(参数[:user])
flash[:success]=“配置文件已更新”
在@user中登录
将_重定向到@user
其他的
渲染“编辑”
结束
结束
def销毁
User.find(params[:id]).destroy
flash[:success]=“用户已销毁。”
将\u重定向到用户\u url
结束
私有的
def已签名用户
除非你签了名?
门店位置
重定向至登录url,注意:“请登录。”
结束
结束
def正确的用户
@user=user.find(参数[:id])
重定向到(根路径),除非当前用户(@user)
结束
def管理员用户
将_重定向到(根路径),除非当前_user.admin?
结束

/users
应指向UsersController#索引。确保您正在分配集合
@users

例如,在最基本的层面上,它可能是这样的:

def index
  @users = User.all # not paginated
  @users = User.paginate(page: params[:page]) # paginated
end

至于测试数据库错误,我猜这是因为您多次定义了:micropost工厂

在用户控制器中,确保您有@Users,如果您正在使用will\u paginate,请确保调用
.paginate(page:params[:page],per\u page:20]
,并且在您的视图中,使用

而不是@user=user.find(params[:id]),这是您应该使用的
@users=User.paginate(page:params[:page])

AJcodez,谢谢您的帮助。我尝试了这个方法,但没有成功。我知道这就是问题所在,所以我一直在玩变体游戏,但没有成功。我在哪里可以找到:micropost工厂的定义?我已将用户控制器行从atusers=User.paginate(:page=>params[:page])更改为to atusers=User.paginate(第页:参数[:第页],[每页:20]
这就是您的建议吗?我现在收到一个新错误。它是语法错误,意外的'\n',期望tASSOC@John我应该键入什么来向这个文本框表明我正在输入代码?请参阅下面的说明,该网站如何使用Markuptomy帮助我通过gchat解决了这个问题,这个问题比这里的问题更完整。