首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收集小于per(x)时的Kaminari错误

收集小于per(x)时的Kaminari错误
EN

Stack Overflow用户
提问于 2014-05-01 06:42:15
回答 1查看 120关注 0票数 0

我在为我的分页经营Kaminari宝石。

控制器

代码语言:javascript
复制
def dashboard
  @projects = Project.find_by_user_id(current_user)
  if @projects.size > 10
    @projects.page(params[:page]).per(10)
  end
end

仪表板视图

代码语言:javascript
复制
= paginate @projects, :theme => 'twitter-bootstrap-3', :remote => true

在我的例子中,@projects有时只是1条记录,甚至0条记录。当它是零时,我会在params上得到一个错误:页面为零。

所以这起作用了

代码语言:javascript
复制
def dashboard
  @projects = Project.page(params[:page]).per(10)
end

这会得到错误的undefined method 'page' for #<Project:0x007f8cac5f14b0>

代码语言:javascript
复制
  def dashboard
    @projects = Project.find_by_user_id(current_user).page(params[:page]).per(10)
  end

我认为这是因为@projects只是几条记录,比.per中指定的10条更少

我尝试添加一个@projects.count或@projects.size,但得到了错误undefined method 'size' for #<Project:0x007f8c996865f0>

代码语言:javascript
复制
def dashboard
  @projects = Project.find_by_user_id(current_user)
  if @projects.size > 10
    @projects.page(params[:page]).per(10)
  end
end

我到底做错什么了?哈哈

我猜想我可以在第一个实例中修复这个选项,而不是试图修复第二个或第三个选项。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-01 06:50:47

问题是Project.find_by_user_id(current_user)返回一个Array,而不是ActiveRecord::Relation

你应该做这样的事情:

代码语言:javascript
复制
current_user.projects.page(params[:page]).per(10)

如果你的关系设置正确的话。

或者:

代码语言:javascript
复制
Project.where(user_id: current_user.id).page(params[:page]).per(10)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23403272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档