0

私自身の好奇心のために (簡単な) 質問があります: Rails がどのように投稿された値をフォームに事前入力するかを知りたいです...ご存知のように、一部のモデルの属性で検証エラーが発生した場合は、「render」のようなことを行います。 :edit" と入力すると、フォームは魔法のように事前入力されます。

Railsがそのようなことを行うために使用するメカニズムは正確には何ですか? この件に関するドキュメントを見つけることができなかったので、魔法を理解したいと思います。

ですから、誰かがこの主題について説明をしてくれるなら、喜んでそれを読みます!

ありがとう!

[編集] 副次的な質問: モデルが別のモデル (STI) から継承する場合、フォームを事前入力するために特に何かをする必要がありますか?

4

1 に答える 1

1

あなたは主form_forにこのスタイルでヘルパーを使用しています:

<%= form_for @person do |f| %>
  <!-- Some more stuff here -->

  <%= f.text_field :first_name %><br />

  <!-- Some more stuff here -->
<% end %>

この本質的な機能は、 の値が入力されたテキスト フィールドを生成することです@person.first_name.to_s。エラーが発生した場合、エラー@person.first_name値が入ります。@person = Person.new人 ( )を作成する場合は、@person.first_name.to_sです""

したがって、Rails はテキスト フィールドに属性の値を入力するだけです。

fちなみにレールFormBuilderです。ソースを詳しく調べたい場合は、そのメソッドがここに文書化されています。

于 2012-07-29T20:24:00.463 に答える