12

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

以前のコードのコードを添付します。

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

およびレール関数の使用法

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

最初のコードはきれいで、わかりやすく、直感的に見えます - 2 番目のコードよりも.. それについてどう思いますか?

4

3 に答える 3

10

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

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

ただし: アドバイス: それがあなたのチームが標準化したものである場合は、チームに参加してください。

于 2012-07-23T14:27:31.090 に答える
2

Project と Rails の標準に加えて、セキュリティが content_tag を使用しなければならないもう 1 つの理由です。

content_tag の方が優れていると感じる 2 つの簡単な理由

  1. RailsのViewファイルは、Rubyから生成されたEmbedded Ruby(意味)HTMLページにあるため、content_tagのようなヘルパーメソッドは、ERBからHTMLを生成するのを助ける目的を果たします。

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

于 2014-08-13T06:10:39.123 に答える
1

これは、HTML生成を簡素化するためのヘルパーメソッドです。使用したいものを渡すと、そのためのHTMLが吐き出されます。それは基本的にあなたのためにそれを構築します、私はそれらを決して使用しませんが、ヘルパーメソッド呼び出しを入力するのと同じくらい時間がかかるので私はむしろ私自身を書きたいです:) @Jesse良い呼び出し、これがあなたのチームが使用しているものなら、コンベンションで

于 2012-07-23T14:42:34.863 に答える