我正在运行Kaminari宝石以进行分页。
控制器
def dashboard
@projects = Project.find_by_user_id(current_user)
if @projects.size > 10
@projects.page(params[:page]).per(10)
end
end
仪表板视图
= paginate @projects, :theme => 'twitter-bootstrap-3', :remote => true
在我的情况下,@ projects有时仅是1条记录,甚至是零条记录。当它为nil时,我在params [:page]为nil时收到错误消息。
所以这有效
def dashboard
@projects = Project.page(params[:page]).per(10)
end
这会出错 undefined method 'page' for #<Project:0x007f8cac5f14b0>
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>
def dashboard
@projects = Project.find_by_user_id(current_user)
if @projects.size > 10
@projects.page(params[:page]).per(10)
end
end
我到底在做什么错!!哈哈
我猜我可以在第一时间解决此问题,而不是尝试修复第二或第三种选择。任何帮助将不胜感激。
问题是Project.find_by_user_id(current_user)
返回Array
,而不是ActiveRecord::Relation
您应该执行以下操作:
current_user.projects.page(params[:page]).per(10)
如果您的关系正确设置。
或者:
Project.where(user_id: current_user.id).page(params[:page]).per(10)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句