非常有經驗,但自學PHP/MySQL和玩Rails。真的很喜歡我用它做的事情,但是我認真對待我腦海中的事情應該很簡單;將來自各個表格的數據連接在一起,然後以各種視圖顯示。我想我明白了Active Record的概念,但我似乎無法按照自己想要的方式使其工作。Rails新手 - 我錯過了真正明顯的東西嗎?
我正在構建一個相當複雜的音樂編目系統翼Discogs,與藝術家,發行,產品跟蹤和標籤水平,並有以下型號:
class Artist < ActiveRecord::Base
has_and_belongs_to_many :releases
end
class Release < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :release
has_many :tracks
end
class Tracks < ActiveRecord::Base
has_and_belongs_to_many :products
end
最後,我要介紹的領土,銷售和其他數據,但直到我指出上面的基礎知識,我不能移動fwd。
在我的產品控制器我有:
@product = Product.find(:all, :include => :release)
主要生產:
Processing by ProductsController#index as HTML
Product Load (0.1ms) SELECT "products".* FROM "products"
Release Load (0.2ms) SELECT "releases".* FROM "releases" WHERE "releases"."id" IN (1, 2, 3, 10, 4)
但我想,如果我的聯想是正確的,這可能是不必要的?
在我的產品視圖中,例如,我想列出從發佈表中拉入標題的產品。我已經嘗試了以下內容,但在標題上出現'NoMethodError':
<% @product.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= product.cat_no %></td>
<td><%= product.barcode %></td>
<td></td>
</tr>
<% end %>
幫助!!
提前非常感謝。
瑞安
我可以看到你對此感到困惑。我認爲你在這裏錯過了很多東西(例如,你應該在你的發佈模型中有一個'has_and_belongs_to_many:artists'),所以我建議你不要糾正你,而是要去看看http://blog.hasmanythrough.com/。 2006/4/20 /多到許多舞蹈斷。它擁有你需要的一切來推動這個 – Ashitaka 2012-01-31 11:55:58
哈哈,我會說失望!它應該是簡單的權利?我想我在走路前試圖跑步。 感謝您的評論,我現在就去看看你的博客。 – Raoot 2012-01-31 12:47:11
哦,博客不是我的。我偶然發現了它,同時學習了rails並研究瞭如何實現連接模型和表格,並且該站點從此一直對我非常寶貴。它非常好,它解釋了使用'HABTM'關係和'has_many:through'關係(我認爲是你想要的)之間的主要區別。 – Ashitaka 2012-01-31 12:56:39