Я стараюсь построить помощника, который выводит < '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 для представления. Я уверен, что это должно иметь какое-то отношение к блоку и привязкам, но я могу на всю жизнь понять, что и как его исправить. Может ли кто-нибудь помочь?