2015-09-21 87 views
1

俱樂部是我存儲學生課程信息的模型。獲取錯誤:ActiveRecord_Associations_CollectionProxy

我有以下的關聯:

class Club < ActiveRecord::Base 

     has_many :mcqs 
    end 

    class Mcq < ActiveRecord::Base 

    #validation 
    validates :topic, presence: true,length: { minimum: 5 } 
    validates :club, presence: true 

    #association 
    belongs_to :user 
    belongs_to :club 
    end 

這是我的俱樂部控制器 -

class ClubsController < ApplicationController 

def student_show_index 
    @club = current_user.clubs 
    end 

    def student_show_topic 
    @club = current_user.clubs 
    @mcq = @club.mcqs 
    end 

end 

我只是想打印特定俱樂部的所有MCQ來的學生。

這是我的看法,顯示主題MCQ(student_show_topic)。

<%= render 'assessment/type' %> 
<h1>List of Topics</h1> 
<div class="main-cont"> 
    <div class="stream-cont"> 
     <div class="stream-cont"> 
     <% @mcq.each do |f| %> 
      <div class="feed-cont-title all-header"> 
       <tr> 
        <td><%= f.topic %></td> 
       </tr> 
      </div> 
     <% end %> 
    </div> 
</div> 

這是關聯問題。我的俱樂部模型無法訪問mcq模型。

這是我的錯誤信息。

NoMethodError in ClubsController#student_show_topic 
undefined method `mcqs' for #<Club::ActiveRecord_Associations_CollectionProxy:0x007fb031e0cf48> 
Extracted source (around line #81): 

79 def student_show_topic 
80 @club = current_user.clubs 
81 @mcq = @club.mcqs 
82 end 
83 
84 end 

後,我用@mcq = @ club.first.mcqs

這表明俱樂部的所有MCQ。但在我的俱樂部表我給你俱樂部的

  1. 9物理學
  2. 9化學

,所以我想,當我點擊9物理學的話題就只顯示物理MCQ主題等上。

回答

1

看你@club是不是一個對象集合的單個對象,你不能用@club來調用mcqs

不過你叫@club.first.mcqs

+0

這是錯誤的'mcq_ids = @ club.collect(:mcq_id)'按照協會 – Pavan

+0

是,他的代碼非常混亂。但是他期待的是什麼 –

+0

你應該刪除這兩個查詢,因爲它們是完全錯誤的! – Pavan