Использование помощников в рельсах 3 для вывода HTML

Я стараюсь изо всех сил создать помощника, который выводит <'ul>, состоящий из всех членов коллекции. Для каждого члена коллекции я хочу распечатать <'li>, у которого есть заголовок и div с ссылками на CRUD участника. Это очень похоже на то, что Rails выводит для скаффолдинга для представления индекса.

Вот помощник у меня есть:

def display_all(collection_sym)
  collection = collection_sym.to_s.capitalize.singularize.constantize.all

  name = collection_sym.to_s.downcase

  html = '' 

  html << "<ul class=\"#{name}-list\">"

  for member in collection do
    html << content_tag(:li, :id => member.title.gsub(' ', '-').downcase.strip) do
     concat content_tag(:h1, member.title, :class => "#{name}-title")
     concat link_to 'Edit', "/#{name}/#{member.id}/edit"
     concat "\|"
     concat link_to 'View', "/#{name}/#{member.id}"
     concat "\|"
     concat button_to 'Delete', "/#{name}/#{member.id}", :confirm => 'Are you sure?  This cannot be undone.', :method => :delete
    end
   end

   html << '</ul>'

 return html
end 

И этот вывод именно то, что я хочу. Прежде всего, если кто-то думает, что есть лучший способ сделать это, пожалуйста, не стесняйтесь поправлять меня, я подозреваю, что я делаю это басовым способом, но на данный момент это единственный способ, которым я знаю, как.

Затем я попытался обернуть ссылки в div следующим образом:

def display_all(collection_sym)
  collection = collection_sym.to_s.capitalize.singularize.constantize.all

  name = collection_sym.to_s.downcase

  html = '' 

  html << "<ul class=\"#{name}-list\">"

  for member in collection do
     html << content_tag(:li, :id => member.title.gsub(' ', '-').downcase.strip) do
     concat content_tag(:h1, member.title, :class => "#{name}-title")
     concat content_tag(:div, :class => "links-bar") do
       concat link_to 'Edit', "/#{name}/#{member.id}/edit"
       concat "\|"
       concat link_to 'View', "/#{name}/#{member.id}"
       concat "\|"
       concat button_to 'Delete', "/#{name}/#{member.id}", :confirm => 'Are you sure?  This cannot be undone.', :method => :delete
     end
   end
 end

 html << '</ul>'

 return html
end 

Однако теперь я больше не получаю никакой разметки внутри вывода div.links-bar для представления. Я уверен, что это должно быть как-то связано с блокировкой и привязками, но я могу на всю жизнь понять, что или как исправить. Кто-нибудь может предложить какую-либо помощь?

Ответы на вопрос(3)

Ваш ответ на вопрос