2014-01-25 83 views
2

任何人都可以在rails中描述content_tag的一些用例。我的意思是爲什麼我應該比簡單的標籤語法更喜歡它。通過html div標籤比較content_tag(:div)content_tag和標準htm標籤的比較

回答

1

根據我的經驗,我傾向於在幫助器方法(app/helpers)內使用content_tagcontent_tag往往很難得到很快(尤其是當它們嵌套w /塊),所以我只用它們來縮短HTML助手。

content_tag非常適合動態創建事物。例如,下面是/項目

def ul(items = [], attributes = {}, &block) 
    content_tag :ul, attributes do 
     yield(items) if block_given? 
     [*items].map { |i| content_tag :li, i }.join.html_safe 
    end 
    end 

產生無序列表W A輔助方法,這可以讓你做的事情一樣

ul ['first', 'second', 'third'] 

甚至通過阻止列表

ul do |l| 
    l << "first" 
    l << "second" 
    l << "third" 

使用一個輔助方法在這裏而不是原始的HTML使得這個代碼更加可重用(DRY),並且還允許靈活性。

1

當您想要動態生成HTML塊時,標記助手很有用。例如,看到我寫的關於生成Twitter Bootstrap麪包屑的帖子:http://www.nicolasgarnil.me/blog/2012/neat-breadcrumbs-with-some-ruby-magic/

如果你正在編寫靜態標記,你應該堅持HTML標記。如果你不想包裝邏輯來生成像麪包屑,嵌套字段等html組件,使用標籤助手。