Ruby on rails 如何在show view中添加上一个/下一个链接?
我正在尝试在我的show视图中添加上一个/下一个链接。模型如下: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
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