如何打印一个类的相关类的所有对象的所有属性?这应该在哪个文件中(模型,视图,控制器?)。我应该实现什么功能?
我在Ruby on Rails项目中创建了2个类。一种称为“ Candy”,其属性“名称”为字符串类型。另一类称为“商店”。这些类与数据库关联。 Candy属于Shop,Shop有很多糖果。我正在尝试在“商店”视图中输出此内容。
我尝试了类似以下代码的不同变体:
<ul>
<%= Shop.Candies.name.all %>
</ul>
<% end %>
这:
<% Shop.Candies.name do |Candies| %>
<ul>
<% puts Shop.Candies.name %>
</ul>
<% end %>
答案 0 :(得分:2)
假设您有一个名为@shop
的变量,它是通过执行以下操作获得的:
class ShopController < ApplicationController
def show
@shop = Shop.find(params[:id])
end
end
然后,您认为您可以执行以下操作:
<ul>
<% @shop.candies.each do |candy| %>
<li>
<%= candy.name %>
</li>
<% end %>
</ul>
此:
Shop.Candies.name.all
是一团糟,因为(至少):
candies
,而不是Candies
(大写字母很重要)。candies
是Shop
实例上的方法(例如,在我的示例中为@shop
),而不是Shop
类上的方法。因此,Shop.Candies
没有任何意义(Shop.candies
也没有意义)。但是,@shop.candies
很有道理。name
是Candy
实例上的方法。由于Candies
没有意义,因此Candies.name
也没有意义。但是,candy.name
很有道理。all
到底在做什么。