在HAML和Rails中编写每个循环

时间:2013-08-22 17:27:29

标签: ruby-on-rails ruby-on-rails-3.2 haml

我有这样的HAML:

- @my_patients_list.each do |patient|
  %tr
    %td= patient.name
    %td= patient.date_of_birth
    %td= patient.gender
    %td= patient.brand_name.name
    %td= patient.generics[0].name

注意第%td= patient.generics[0].name行 我作弊,只打印第一个通用。但是每个patinet可以有多个泛型。 因此,该部分是一个问题或另一个for-each loop。但是这个HAML我刚开始使用它并且仍然不习惯它。 有人可以帮助我用HAML格式编写额外的循环,这样我就可以用patient.generics[0].name ?替换它 可能让我们用逗号分隔他们的泛型名称。

2 个答案:

答案 0 :(得分:9)

假设泛型是一个字符串数组,并且您希望用新的td ...

分隔
- @my_patients_list.each do |patient|
  %tr
    %td= patient.name
    %td= patient.date_of_birth
    %td= patient.gender
    %td= patient.brand_name.name
    - patient.generics.each do |gen|
       %td= gen.name

否则,如果您只想用逗号分隔...

- @my_patients_list.each do |patient|
      %tr
        %td= patient.name
        %td= patient.date_of_birth
        %td= patient.gender
        %td= patient.brand_name.name
        %td= patient.generics.map(&:name).join(',')  

答案 1 :(得分:4)

如果您想用逗号分隔泛型名称,可以试试这个:

- @my_patients_list.each do |patient|
  %tr
    %td= patient.name
    %td= patient.date_of_birth
    %td= patient.gender
    %td= patient.brand_name.name
    %td= patient.generics.map(&:name).join(',')           

它将打印以逗号分隔的所有相关通用名称。