Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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 on rails 如何在show view中添加上一个/下一个链接?_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails 如何在show view中添加上一个/下一个链接?

Ruby on rails 如何在show view中添加上一个/下一个链接?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我正在尝试在我的show视图中添加上一个/下一个链接。模型如下: Position belongs_to :skill Skill has_many :positions, :order => 'salary desc, id desc' 位置/显示视图: <%= link_to("Previous", @position.previous) if @position.previous %> <%= link_to("Next", @position.next) if

我正在尝试在我的show视图中添加上一个/下一个链接。模型如下:

Position
belongs_to :skill

Skill
has_many :positions, :order => 'salary desc, id desc'
位置/显示视图:

<%= link_to("Previous", @position.previous) if @position.previous %>
<%= link_to("Next", @position.next) if @position.next %>

position.rb(为了可读性增加了新行)

def next
自我阶级

.where(“skill_id=?AND salary您应该查看paginate gem它为您提供所有逻辑,并创建您的视图链接
https://github.com/mislav/will_paginate

好的,试着看看这个宝石:

问题似乎在于您的SQL mojo并没有完全达到目标,但由于我完全没有SQL mojo,我不知道为什么您的方法不起作用

Metawhere允许您使用非常精确的ruby代码生成复杂的SQL查询。在项目主页上,它给出了复杂顺序子句的示例:

Article.order(
    :title.desc,
    :comments => [:created_at.asc, :updated_at]
  ).joins(:comments)
因此,我认为如果您使用metawhere,您可以简单地将其添加到
where
子句中:

... :order => [:id.desc, :salary.desc] ...
或者将其链接为
.order()

我希望这会有帮助!

我找到了解决方案:)它相当长,但它可以工作:

where("skill_id = ? AND salary = ? AND id < ?
       OR 
       skill_id = ? AND salary < ?",
       skill_id, salary, id, skill_id, salary
     )
     .order("salary desc, id desc").first
其中(“技能id=”和薪水=?和id<?
或
技能id=?和工资<?“,
技能id,薪水,id,技能id,薪水
)
.订单(“薪资说明,id说明”)。首先
order('salary DESC,id DESC')将按降序排列薪资,然后按降序解析与id的关系。
where("skill_id = ? AND salary = ? AND id < ?
       OR 
       skill_id = ? AND salary < ?",
       skill_id, salary, id, skill_id, salary
     )
     .order("salary desc, id desc").first