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

该页面将为您解释每个单独的元素,以便您理解它们。显然,我推荐的另一件事是运行代码本身并学习理解它是如何工作的。

但在高层次上,这就是正在发生的事情。

该行:

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

本质上是抓取配置文件并拉parent_type取用户配置文件指向的所有记录,然后循环它们——将parent_type记录以及该记录的记录传递index到循环中。

该行:

 = 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 记录呈现一次,并且是记录的属性。基本上应该有一个表格列出这些,每条记录一行。

明白了吗?

于 2012-07-02T13:27:04.557 回答