0

QuizVersionすべてのモデル情報と関連Quizモデルを 1 行で選択したい。

以下は私がこれまでに持っているものであり、情報を出力するのではなく、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
4

2 に答える 2

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])

それが役立つことを願っています

編集:ただし、これを実行して再確認していないことを告白します...

于 2013-04-12T13:29:27.383 に答える
0

試す:

@myquiz = Quiz.includes(:QuizVersions).find([14,16])
于 2013-04-12T13:25:00.490 に答える