查询模型和连接关联模型

时间:2013-04-12 13:20:24

标签: ruby-on-rails ruby database model-associations

我希望在一行中选择所有QuizVersion模型信息和相关的Quiz模型。

以下是我目前的情况,它没有输出任何Quiz信息,只有QuizVersion信息:

控制器:

class QuizzesController < ApplicationController

    def getquiz

        @myquiz = QuizVersion.joins(:Quiz).find([14,16])
    end

end

测验模型:

class Quiz < ActiveRecord::Base
  set_table_name "quizzes"
  set_primary_key "quiz_ID"
  has_many :QuizVersions, :primary_key => "quiz_version_id", :foreign_key => "quiz_version_id"
end

QuizVersion模型:

class QuizVersion < ActiveRecord::Base
  # attr_accessible :title, :body
  set_primary_key "quiz_version_id"
  belongs_to :Quiz, :primary_key => "quiz_id", :foreign_key => "quiz_id"
end

以下是结果信息:

---
- !ruby/object:QuizVersion
  attributes:
    quiz_version_id: 14
    quiz_id: 18
    quiz_name: Super Hero Quiz
    intro: Take this quiz to find out which super hero you are most like!
    email: ''
    activated: 0
    ip_address: 127.0.0.1
    public: 0
    quiz_type: ''
    created_time: 1347360590
- !ruby/object:QuizVersion
  attributes:
    quiz_version_id: 16
    quiz_id: 18
    quiz_name: Super Hero Quiz
    intro: Take this quiz to find out which super hero you are most like!
    email: ''
    activated: 0
    ip_address: 127.0.0.1
    public: 0
    quiz_type: ''
    created_time: 1347706841

2 个答案:

答案 0 :(得分:0)

尝试:

@myquiz = Quiz.includes(:QuizVersions).find([14,16])

答案 1 :(得分:0)

首先,通常使用小写来定义关联:

class Quiz < ActiveRecord::Base
  set_table_name "quizzes"
  set_primary_key "quiz_ID"
  has_many :quiz_versions
end

class QuizVersion < ActiveRecord::Base
  # attr_accessible :title, :body
  set_primary_key "quiz_version_id"
  belongs_to :quiz
end

然后你可以使用:

QuizVersion.includes(:quiz).find([14,16])

希望有所帮助

编辑:我承认我没有用它来仔细检查......