Ruby on rails 如何循环与Draper装饰器方法的关联?
我有一个TripDecorator装饰一个旅行对象。旅行有很多活动 我想创建一个TripDecorator方法,生成属于特定旅行的活动列表 如何将其转换为:Ruby on rails 如何循环与Draper装饰器方法的关联?,ruby-on-rails,draper,Ruby On Rails,Draper,我有一个TripDecorator装饰一个旅行对象。旅行有很多活动 我想创建一个TripDecorator方法,生成属于特定旅行的活动列表 如何将其转换为: <h5>Activities</h5> <ul> <% @trip.activities.each do |activity| %> <%= content_tag :li, activity.name %> <% end %> </ul> 活动
<h5>Activities</h5>
<ul>
<% @trip.activities.each do |activity| %>
<%= content_tag :li, activity.name %>
<% end %>
</ul>
活动
为此:
<%= @trip.activities_list %>
如果没有活动,我不希望任何东西出现。德雷珀可以实现这种抽象吗?当然,这很简单
class TripDecorator
decorates :trip
def activities_list
return if activities.empty?
h.content_tag(:h5, "Activities") +
h.content_tag(:ul) do
activities.map do |activity|
h.content_tag(:li, activity.name)
end.join
end.html_safe
end
end
您只需连接
content\u-tag
调用即可生成标记,如果没有任何活动可循环,则可以缩短该方法。谢谢。这正是我想要的。为了防止出现