我正在学习如何使用draper gem将视图代码移动到装饰器中。我无法弄清楚如何将它们移动到装饰器中。
<% @project.users.each do |p| %>
<small class="btn btn-mini">
<%= link_to "#{p.first_name} #{p.last_name}", "mailto:#{p.email}" %>
</small>
<br>
<% end %>
我尝试了以下内容:
查看代码:
<%= @project.assigned_users %>
装饰员代码:
def assigned_users
model.users.each do |p|
h.content_tag :small, class: 'btn btn-mini' do
h.link_to "#{p.first_name} #{p.last_name}", "mailto:#{p.email}"
end
end
end
结果是整个用户哈希,而不是我正在寻找的first_name last_name按钮。也许.each不属于装饰者?任何帮助,将不胜感激。
答案 0 :(得分:0)
each
返回原始哈希值。您需要改为阻止块的结果:
def assigned_users
model.users.map do |p|
h.content_tag :small, class: 'btn btn-mini' do
h.link_to "#{p.first_name} #{p.last_name}", "mailto:#{p.email}"
end
end.flatten.join.html_safe
end