Ruby on rails 3 接下来,组中以前的记录(有多条)

Ruby on rails 3 接下来,组中以前的记录(有多条),ruby-on-rails-3,Ruby On Rails 3,希望有人能帮忙。我有“下一个”和“上一个”按钮,用于处理数据库中的下一条记录。但是,每个项目都属于一种类型,希望按钮能够跳转到同一类型中的下一条记录 模型 Project.rb has_many :typelinks, :dependent => :destroy has_many :types, :through => :typelinks def self.get_previous_project(current_project) Project.where

希望有人能帮忙。我有“下一个”和“上一个”按钮,用于处理数据库中的下一条记录。但是,每个项目都属于一种类型,希望按钮能够跳转到同一类型中的下一条记录

模型

Project.rb
has_many :typelinks, :dependent => :destroy
has_many :types, :through => :typelinks

def self.get_previous_project(current_project)        
  Project.where("projects.id < ? ", current_project.id).order('id asc').last
end

def self.get_next_project(current_project)
  Project.where("projects.id > ? ", current_project.id).order('id asc').first
end

Type.rb
has_many :typelinks, :dependent =>:destroy
has_many :projects, :through =>:typelinks

typelink.rb
belongs_to :project
belongs_to :type
Project.rb
有多个:typelinks,:dependent=>:destroy
有许多:类型,:至=>:类型链接
定义self.get_上一个_项目(当前_项目)
项目。其中(“projects.id<?”,当前项目。id)。订单('id asc')。最后
结束
定义self.get_下一个_项目(当前_项目)
Project.where(“projects.id>?”,当前_Project.id)。订单('id asc')。首先
结束
Type.rb
有多个:typelinks,:dependent=>:destroy
拥有多个:项目,:至=>:类型链接
typelink.rb
属于:项目
属于:类型
上面是项目和类型之间的关系设置。下面是项目的查看页面。隐藏最后一条或第一条记录时的箭头。(CSS已删除,因为我现在只需要该函数)


总之

这是所需功能的一个示例

项目1 项目2 项目3 项目4

类型1 类型2

项目2和项目4属于类型2

在Project2的查看页面上单击下一个箭头时,需要转到Project4查看,而不是Project3

我希望有人能在这方面帮助我,很抱歉发了这么长的帖子。

这可能有用:

Project.joins(:types).where("projects.id < ? and types.id in (?)", current_project.id, current_project.types.map(&:id)).order('id asc').last
Project.joins(:types).where(“projects.id<?and types.id in(?)、current_Project.id、current_Project.types.map(&:id)).order('id asc')。last

谢谢你的回答,不过它只是转到数据库中的下一条记录,而不是类型中的下一条。等等,它确实有效,是单击下一条而不是上一条让我再做一些测试。谢谢,唯一的问题是,当它到达该类型中的最后一条记录时,它移动到最后一条记录,在第一个项目中也是一样的
Project.joins(:types).where("projects.id < ? and types.id in (?)", current_project.id, current_project.types.map(&:id)).order('id asc').last