当前位置:  开发笔记 > 后端 > 正文

如何在rails中进行连接查询?

如何解决《如何在rails中进行连接查询?》经验,为你挑选了2个好方法。

假设我有两个表,一个包含个人信息的学生主列表,以及一个班级中的学生注册列表.这两个表共享一个公共列,这是一个唯一标识学生的字符串,但它不是主键.

假设我想显示页面上的所有注册,以及来自学生的一些个人数据(比如说可能是家乡).

我明白这将是一个非常多的关系.主列表记录有许多注册.注册属于学生.

class Student < ActiveRecord::Base
    has_many :enrollments
end

class Enrollment < ActiveRecord::Base
   belongs_to :student
end

这是两者之间的正确关系,如果是这样,我如何对共享列进行连接查询?



1> mwilliams..:

理想情况下,Rails期望以下列:

Student table:
- id

Enrollment table:
- student_id

这样做,你的关系应该有效.

然后尝试一下,放入Rails控制台并玩游戏:

@student = Student.first
@student.enrollments

看一下使用关联的这个伟大的Rails参考:

http://guides.rubyonrails.org/association_basics.html



2> Tim Knight..:

是ActiveRecord将为您管理关系,但您也可以在关系中搜索条件时指定联接.例如:

User.find(:all, :joins => :phone_numbers, :conditions => { :phone_numbers => {:name => 'business'} })

请注意,虽然条件声明使用哈希仅在Rails 2.2中

但是大多数时候只使用ActiveRecord关系has_many应该没问题,如上面的答案中所提到的,你可以使用就像直接在模型上调用对象一样...@student.enrollments

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有