<div class="col-md-12 col-sm-12 pad-0 col-hover">
<div class="col-md-2 col-sm-2 pad-10 ">
<img class="img1" src="/assets/choose-style/img1.png">
</div>
<div class="col-md-8 col-sm-8">
<h5><%= CaricatureType.first.name %></h5>
<p class="text-color">
<%= CaricatureType.first.description %>
</p>
</div>
<div class="col-md-2 col-sm-2 roundedTwo">
<input type="radio" value="None" id="roundedTwo" name="check" />
<label for="roundedTwo"></label>
</div>
</div>
我有几个像这样的div,但在上面的例子中,我像这样硬编码 CaricatureType.first.name 。但我想在for循环中执行此操作,如果有一种语法可以执行CaricatureType[0].name
答案 0 :(得分:3)
不要在视图中编写业务逻辑,而是可以使用实例变量。
在您的控制器中:
@caricature_type = CaricatureType.all
然后在您的视图中,您可以使用此实例变量。
<% @caricature_type.each do |caricature_type| %>
<div class="col-md-8 col-sm-8">
<h5><%= caricature_type.name %></h5>
<p class="text-color">
<%= caricature_type.description %>
</p>
</div>
<% end %>
答案 1 :(得分:1)
以下是一些想法。假设您要迭代所有CaricatureType
条记录。那就像
<% CaricatureType.all.each do |caricature_type| %>
<div class="col-md-8 col-sm-8">
<h5><%= caricature_type.name %></h5>
<p class="text-color">
<%= caricature_type.description %>
</p>
</div>
<% end %>
或者,如果您想要前10条记录,那么:
<% CaricatureType.first(10).each do |caricature_type| %>
注意:是的,不在视图中放置任何模型查询是可以接受的。将它们保存在呈现当前视图/部分的控制器的相应操作中,然后在视图中使用这些实例变量。我只想在这个答案中告诉你,你正面临的问题是什么。因此,您将查询结果存储在控制器操作中的@caricature_types
内,然后使用它进行迭代。
答案 2 :(得分:0)
client = Client.first(numerical value)
如果数值为2,则返回前2条记录
client = Client.first(2)
=> [ <Client id: 1, first_name: "Lifo">, <Client id: 2, first_name: "Fifo">]