4

これらは関連するモデルです:

class Repository < ActiveRecord::Base
   has_many :quizzes, :dependent => :destroy
   has_one :key, :dependent => :destroy

   accepts_nested_attributes_for :key, :quizzes
end

class Quiz < ActiveRecord::Base
   belongs_to :repository
   has_many :topics, :dependent => :destroy

   accepts_nested_attributes_for :topics
end

これは私のルートにあります:

GqAPI::Application.routes.draw do
  resources :repositories do
    resources :quizzes
  end

  resources :quizzes

  resources :keys

  resources :topics

  resources :questions
end

この構成を試すと、/repositories/1/quizzes に移動しようとしたときに指定した ID のクイズだけでなく、データベース内のすべてのクイズが取得されます

理由についてのアイデアはありますか?お時間をありがとうございました

4

1 に答える 1

3

あなたのインデックスアクションでは、QuizzesController以下を追加する必要があります:

def index
  @repository = Repository.find(params[:repository_id])
  @quizzes = @repository.quizzes
end

この@repository行は、URL のパラメーターに基づいてリポジトリを見つけます。次に、そのリポジトリに基づいてすべてのクイズを見つけます。

次に、ビューで、クイズを表示するときに、それらすべてのクイズをループできます。

ノート

現在ルートを設定している方法では、ページにアクセスできますが、/quizzesこれを望んでいないようです。この場合、(ネストされたものではなく、2番目のもののみ)resources: quizzesから削除できます。routes.rb

于 2012-04-11T00:23:51.167 に答える