質問

レールでの使用を推奨形式ヘルパー?内部的にものを突き詰めればhtmlをしませんのhtmlす。性能を証明する書面に直接htmlヘルパーを使用.使用形式ヘルパーのようなコンベンションあるいは、そのレールを開発すか?

役に立ちましたか?

解決

を定義します。ご性能をグレースケー?と言いますが同じrhtmlスニペットが広がるごす。言うまで何千もの。これによっても思い 正確に 同じ。現在の顧客はこの設定を変更(たぶん異なる注文の発表など).しかしながらこの景色。えんでます。チャンスはあるけすることができます。ってバグ報告期間の場所だけに惜します。

お客様のお支払いくことを得た。その何百ものとする。か数万人を避けた場合、乾燥原則として原則とします。思いの全てのサーバーのすべてのRAM彼女がのためにその労働時間です。ばかりで彼女のハードウェアアプリケーションが実百倍になります。思いの楽しいものをしてしまう可能性もあります。作業の代わりにmonkeying周辺に変化するスニペットをhtml.

他のヒント

フォームヘルパーは、DRY(繰り返さないでください)の原則を反映していると思います。同じコードを上書きして同様のタスクを実行するのではなく、そのコードを再利用できるフォームヘルパーを作成する方法があります。そうすれば、変更または修正が必要な場合は、1か所で行うだけで済みます。また、コードをよりコンパクトで読みやすくして、複雑なアクションをフォームヘルパーに抽象化するのにも役立ちます。同じことが部分ビューにも当てはまりますが、部分ビューはフォームヘルパーよりも複雑なマークアップをカプセル化する傾向があります。

フォームヘルパーは、モデルに基づいてフォームを作成するレールを処理するのに特に役立ちます。 APIドキュメントの例を引用するには:

次のコード

<% form_for :person, @person, :url => { :action => "create" } do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= submit_tag 'Create' %>
<% end %>

このhtmlを生成します

<form action="/persons/create" method="post">
  <input id="person_first_name" name="person[first_name]" size="30" type="text" />
  <input id="person_last_name" name="person[last_name]" size="30" type="text" />
  <input name="commit" type="submit" value="Create" />
</form>

自分でhtmlを書くこともできますが、フォームヘルパーを使用すると、入力を少なくし、フォームの作成をRails実装に依存しにくくする必要があります。送信ボタンを押すと、常にモデルにデータを書き込むフォームが表示されます。 Rails開発者がこの実装を変更した場合、ヘルパーから正しいHTML出力を自動的に取得します。 HTMLを手動で記述した場合は、レールの内部動作の変更を反映するためにすべてを更新する必要があります。

クラス、idに同じ名前を持ち、入力フィールドに値を持たない開発者が別の名前idを必要とし、値を与える場合、 <!> lt;%= text_field_tag < !> quot; name <!> quot ;,:value = <!> gt; <!> quot; value <!> quot ;,:id = <!> gt; <!> quot; id <!> quot; 、:class = <!> gt; <!> quot; <!> quot; class%<!> gt; そして同じhtmlに対して <!> lt;入力タイプ= <!> quot; text <!> quot;値= <!> quot;値<!> quot; class = <!> quot; class <!> quot; name = <!> quot; name <!> quot; id = <!> quot; id <!> quot; / <!> gt;  オーバーヘッド 1。を最初のヘルパーをhtmlに評価する 2 になります。また、ヘルパーでその長さも考慮する必要があります:、= <!> gt; 3。使用を忘れることがあります:または、誤って だから私たちはその場合にHTMLを好むと思う サーバーが大量のリクエストを取得すると、ビジーになりすぎて応答時間が長くなります。<!> lt;%=%<!> gt;実行する必要があります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top