2012-07-23 9 views
7

ruby​​-on-railsでcontent_tag関数を使用するオプションがあり、htmlタグを生成するのに役立ちます。 私が働いている会社のあるレール開発者は、これが "便利で適切な"方法であると言いました。例えば、divを生成するために "ネイティブ" htmlを書くべきではありません... それは本当ですか?それは一種のレール標準ですか?パフォーマンスの問題やレンダリングのスピードに関係しますか?「通常の」htmlの代わりにcontent_tagを使用するのはなぜですか?

私は私の以前のコードのためのコード添付:

<div class="alert alert-<%= key %>"><%= value %></div> 

とレールの機能の使用状況

<%= content_tag(:div, value, class: "alert alert-#{key}") %> 

、かなり理解しやすく直感的に私の最初のルックス - 二コードより詳細.. あなたはどう思いますか?

答えて

8

content_tagを使用できるようにすると、ヘルプやプレゼンターなどのプログラムでRubyコード内にHTMLを生成するときに役立ちます。

私の意見では、通常、プロジェクトのレイアウトやテンプレートではcontent_tagsを使用しません。読みやすさのコーディングに役立たないと思います。私はここで生産性やパフォーマンスの向上は見られません。

HOWEVER:あなたのチームが標準化しているものならチームと一緒に行ってください。

+0

私は(標準)については私の(一時的な)チームと一緒に行かなければならないことを知っています。私はちょうど私がこのヘルパーについて得た説明が本当であるのか、それは単に基準と習慣の問題なのかを知りたかったのです... – benams

1

HTML生成を簡略化しようとするヘルパーメソッドです。あなたはあなたが使いたいものを渡し、HTMLのためにそれを吐き出します。それは基本的にあなたのためにそれを構築します、私はそれらを使用することはありません、私はむしろヘルパーメソッドの呼び出しを入力するだけで時間がかかるので、自分自身を書くだろう:)これはあなたのチームが使用している場合@規約では

1

Project and Railsの標準に加えて、securityはcontent_tagを使用する必要がある理由の1つです。

私はcontent_tagがRuby.Henceから生成された組み込みルビー(意味)HTMLページであり、content_tagのようなヘルパーメソッドがにあなたを手助けするという目的を果たすのRailsのより良い

  1. ビューファイルであると感じ、なぜ二つの迅速な理由ERBからHTMLを生成します。

  2. HTML(ネイティブスタイル)で直接ハードコードすると、クロスサイトスクリプティング攻撃(XSS)が発生しやすくなります。

関連する問題