在HAML和Rails中编写每个循环

5 haml ruby-on-rails ruby-on-rails-3.2

我有这样一个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
Run Code Online (Sandbox Code Playgroud)

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

Boj*_*jan 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
Run Code Online (Sandbox Code Playgroud)

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

- @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(',')  
Run Code Online (Sandbox Code Playgroud)


Ama*_*arg 5

如果您想用逗号分隔泛型名称,您可以尝试以下操作:

- @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(',')           
Run Code Online (Sandbox Code Playgroud)

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