我在盡我所能構建一個幫助程序,輸出一個<'ul>,其中包含集合的所有成員。對於集合中的每個成員,我想打印出一個有標題的<'li>,以及一個鏈接到CRUD成員的鏈接。這與Rails爲索引視圖的腳手架輸出非常相似。在rails 3中使用助手來輸出html
這裏是幫助我有:
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反輸出到視圖中。我相信這肯定與塊和綁定有關,但我可以爲我的生活找出修復它的方法或方法。任何人都可以提供任何幫助嗎?
什麼你的第一個意圖是使用助手嗎?爲什麼不用模板來做呢? – 2010-08-24 22:24:54
嗯,我想我可以使用一個模板,我不知道爲什麼我沒有想到這一點。 – TheDelChop 2010-08-24 22:57:40
partials是繼續這樣做的方式我會認爲...通過所有的代碼耕耘的榮譽...只是讀它頭痛;-) – Ryan 2010-08-25 21:40:36