非常有经验,但自学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