1

親タイプを拡張し、多くの電話番号を埋め込むプロファイルテーブルがあります..ここにコードがあります---

-@profile.parent_type.each_with_index do |parent,index|
  = f.fields_for "parent_attributes[]", parent do |parent_fields|

    %tr
      %td{:class => 'table_hr'}


        = parent_fields.label :lname, "Last name"
        = parent_fields.text_field :lname

        = parent_fields.label :fname, "First name"
        = parent_fields.text_field :fname

このコードが正確に何を意味するのか説明できますか...

4

1 に答える 1

1

ここにある HAML 言語リファレンスをよく理解しておいてください。

http://haml.info/docs/yardoc/file.HAML_REFERENCE.html

そのページでは、個々の要素について説明し、理解できるようにします。私がお勧めするもう 1 つのことは、明らかに、コード自体を実行して、その仕組みを理解することです。

しかし、大まかに言えば、これが起こっていることです。

この線:

@profile.parent_type.each_with_index do |parent,index|

基本的に、プロファイルを取得し、ユーザー プロファイルが指すすべてのレコードを取得してから、それらをループ処理します。レコードとそのレコードのparent_type両方をループに渡します。parent_typeindex

行:

 = f.fields_for "parent_attributes[]", parent do |parent_fields|

各parent_typeレコードのフォームフィールドを作成しています。parent_attributesこれらは、フォームが投稿されると投稿されます。

他の行:

 %tr
  %td{:class => 'table_hr'}


    = parent_fields.label :lname, "Last name"
    = parent_fields.text_field :lname

    = parent_fields.label :fname, "First name"
    = parent_fields.text_field :fname

各parent_typeレコードに対して1回レンダリングし、レコードの属性です。基本的に、レコードごとに 1 行でこれらを一覧表示するテーブルが必要です。

それは明らかですか?

于 2012-07-02T13:27:04.557 に答える