我获得了一项任务:有一个静态网页,其中包含已在视图中手动编写的信息。我应该将该信息移动到数据库中,以便我们清除视图。我的问题是我不知道如何以与目前页面完全相同的格式打印该信息。
我要做的是编写一个返回这样的信息的方法(原始格式示例):
<strong>Category1</strong>
<ul class="square_list">
<li>Item1</li>
<li>Item2</li>
#...etc
</ul>
<strong>Category2</strong>
<ul class="square_list">
<li>Item1</li>
<li>Item2</li>
#...etc
</ul>
#...etc
最接近我能用自己有限的知识得到这个:
<% Bus.find(10).amenities.each do | amenity | %>
<strong><%= amenity.category %></strong>
<ul class="square_list">
<li><%= amenity.item %></li>
</ul>
<% end %>
在项目的每个实例上方打印出类别名称。有没有办法让每个块做我想要的,或者我应该使用另一种方法吗?
根据要求,型号信息:
class Bus < ActiveRecord::Base
has_many :bus_amenities
has_many :amenities, :through => :bus_amenities
class BusAmenity < ActiveRecord::Base
belongs_to :bus
belongs_to :amenity
class Amenity < ActiveRecord::Base
has_many :bus_amenities
has_many :buses, :through => :bus_amenities
Amenity(类别:字符串,项目:字符串) BusAmenity只是公共汽车和设施的中间人。
此应用使用Rails 3.0.19和Ruby 1.9.3p327。
如果我没有提供足够的信息请告诉我。
答案 0 :(得分:1)
除了amenity
有单数item
之外,你看起来非常合适。如果它是items
的集合,那么您的模板可以稍微修改以匹配原始:
<% Bus.find(10).amenities.each do | amenity | %>
<strong><%= amenity.category %></strong>
<ul class="square_list">
<% amenity.items.each do |item| %>
<li><%= item %></li>
<% end %>
</ul>
<% end %>
答案 1 :(得分:0)
我找到了一个可以做我想要的解决方案,但它看起来很糟糕。我相信那里有更好的解决方案。
所以这就是我想要的,但是为每个类别编写每个块似乎都很啰嗦。
<strong>Category1</strong>
<% Bus.find(10).amenities.find(:all, :conditions => {:category => "category1" }).each do | amenity | %>
<ul class="square_list">
<li><%= amenity.item %></li>
</ul>
<% end %>
<strong>Category2</strong>
<% Bus.find(10).amenities.find(:all, :conditions => {:category => "category2" }).each do | amenity | %>
<ul class="square_list">
<li><%= amenity.item %></li>
</ul>
<% end %>