2016-02-27 32 views
-1

我還是對Ruby有點新,但基本上我想要做的是有一個名爲「GA」的模型,另一個名爲「課程」,我已經(希望)設置爲has_and_belongs_to_many關係兩個正確的,我試圖使用下面的代碼來運行每個GA,然後每個課程,並且如果該課程沒有在其GA.GA列表中的GA,它會將當前的GA放入該課程中.ga清單:試圖檢查空關係表?

 <% @gas.each do |ga| %> 
     <% @courses.each do |course| %> 
      <% if course.ga.any? %> 
       course.ga << ga 

      <% end %> 

它不斷拋出一個錯誤,這是GA一個未定義的方法。我也嘗試過其他一些東西,比如'course.ga.exist?'等等。有任何想法嗎?

+1

你是怎麼建立關係?你能更新架構,活動記錄嗎? –

+0

遷移看起來像這樣: class CreateJoinTableCourseGa gllwrnce

回答

0

has_and_belongs_to_many通常與複數關聯名稱一起使用。我希望你的模型是這樣的:

# course.rb 
class Course < ActiveRecord::Base 
    has_and_belongs_to_many :gas 

# ga.rb 
class Ga < ActiveRecord::Base 
    has_and_belongs_to_many :courses 

然後你的榜樣也應該使用多元化的名字(讀,如:一個GA進入氣體名單):

course.gas << ga 
+0

嗯,我想到的是,它確實幫助擺脫錯誤的我把它放在後,但現在看起來頁面打印出來了:「course.gas << ga course.gas << ga course.gas << ga」NewLineHere: 「* Ga Comp1900」Comp1900適合作爲課程名稱,但其餘的我不喜歡不明白爲什麼它被打印出來...... – gllwrnce