Helfer in Rails 3 verwenden, um HTML auszugeben

Ich versuche mein Bestes, um einen Helfer zu erstellen, der ein <'ul> ausgibt, das aus allen Mitgliedern einer Sammlung besteht. Für jedes Mitglied der Sammlung möchte ich ein <'li> ausdrucken, das einen Titel und eine Reihe von Links zu CRUD, dem Mitglied, enthält. Dies ist ziemlich ähnlich zu dem, was Rails für das Gerüst für die Indexansicht ausgibt.

Hier ist der Helfer, den ich habe:

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 

Und das gibt genau das aus, was ich will. Zuallererst, wenn jemand der Meinung ist, dass es einen besseren Weg gibt, zögern Sie nicht, mich zu korrigieren. Ich vermute, dass ich dies auf eine bassbewusste Art und Weise mache, aber im Moment ist es der einzige Weg, auf dem ich weiß, wie.

Ich habe dann versucht, die Links wie folgt in ein div zu packen:

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 

Jedoch bekomme ich jetzt kein Markup mehr in der Ausgabe der div.links-Leiste in die Ansicht. Ich bin mir sicher, dass dies etwas mit Block und Bindungen zu tun haben muss, aber ich kann für mein ganzes Leben herausfinden, was oder wie ich es reparieren soll. Kann mir jemand helfen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage