无法使用Active记录在rails上检索另一个表的关联记录

时间:2016-01-10 09:27:17

标签: ruby-on-rails activerecord

我有一个名为Candidates的表,它的模型定义如下

Candidates:
 has_many :candidate_jobs

SQL TABLE

    id
-----------------
    other fields

和第二个表CandidateJobs(sql table candidate_jobs),其模型定义如下

class CandidateJobsController < ApplicationController

  belongs_to :candidate


SQL TABLE

     id
------------
candidate_id
other fields

我已经设置了记录以便两个表匹配,我去了rails控制台,我能够检索到我需要的数据:

@result=CandidateJob.includes(:candidate).where("candidate_id=1")

这给了我正确的结果,但这似乎是错误的。我希望能够发表像

这样的陈述
@candidate=Candidate.find(1)
@jobs=candidate.candidateJobs

并检索与该候选项关联的所有作业,而不必在前一段中进行我告诉您的反向查询。我希望能够从持有工作的候选人那边编写代码,而不是相反。我究竟做错了什么?。非常感谢,我花了15个小时学习了很多关于activeRecord的知识,但是我无法从这个角度进行查询

1 个答案:

答案 0 :(得分:1)

您应该查找has_many / belongs_to关联:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://XXXXXXXXXXXXXX:8243/token":Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:567)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:520)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:463)

这将使您能够查找:

#app/models/candidate.rb
class Candidate < ActiveRecord::Base
   has_many :candidate_jobs
end

#app/models/candidate_job.rb
class CandidateJob < ActiveRecord::Base
   belongs_to :candidate
end

-

ActiveRecord使整个过程非常简单。