Ruby on rails 表单_for、each和字段_for combined出现错误

Ruby on rails 表单_for、each和字段_for combined出现错误,ruby-on-rails,haml,form-for,Ruby On Rails,Haml,Form For,我正在尝试创建一个包含要编辑的数据形式的表。但是,我收到以下错误: syntax error, unexpected ')' at line 73 第73行是%tr.medium。我知道这不是问题所在,我假设这是行的字段,但我不确定为什么这会导致问题,因为我基于一个类似的在线示例 = form_for :campaign do - @campaigns.each do |campaign| = fields_for "campaign[]", campaign do |campai

我正在尝试创建一个包含要编辑的数据形式的表。但是,我收到以下错误:

syntax error, unexpected ')' at line 73
第73行是
%tr.medium
。我知道这不是问题所在,我假设这是行的
字段,但我不确定为什么这会导致问题,因为我基于一个类似的在线示例

= form_for :campaign do
  - @campaigns.each do |campaign|
    = fields_for "campaign[]", campaign do |campaign_fields|
    %tr.medium
      %td= link_to campaign.name
      %td= campaign.status    
      %td
        -if ["New", "Updated"].include? campaign.status 
          = campaign_fields.check_box :status, {id: "#{campaign.id}", :class => "approvedservices"}, "Approved", ""
      %td{:style => "width:100px;"}
        -unless ["Rejected", "Approved"].include? campaign.status
          = campaign_fields.check_box :status, {id: "reject#{campaign.id}", :class => "rejectedservices"}, "Rejected", ""
      %td.notes{:style => "display: none"}
        = campaign_fields.text_field :notes, class: 'form-control mandatory', type: "input"
      %tr.medium
        %td.white{:colspan => 8}
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Approve", :name => 'Commit'
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Reject", :name => 'Reject'

有什么建议吗?

%tr.medium
,下面的代码应该是这样的标签:

= fields_for "campaign[]", campaign do |campaign_fields|
  %tr.medium
    %td= link_to campaign.name

因为HAML类似于Python,它根据其选项卡级别来决定代码块的“级别”。

%tr.medium
下面的代码应该这样选项卡:

= fields_for "campaign[]", campaign do |campaign_fields|
  %tr.medium
    %td= link_to campaign.name

因为HAML类似于Python,它根据其制表符级别来决定代码块的“级别”。

HAML严格来说是一种缩进要求的语言,因此,当您错过缩进时,就会发生错误

= form_for :campaign do
  - @campaigns.each do |campaign|
    = fields_for "campaign[]", campaign do |campaign_fields|
      %tr.medium
        %td= link_to campaign.name
        %td= campaign.status    
        %td
          -if ["New", "Updated"].include? campaign.status 
            = campaign_fields.check_box :status, {id: "#{campaign.id}", :class => "approvedservices"}, "Approved", ""
        %td{:style => "width:100px;"}
          -unless ["Rejected", "Approved"].include? campaign.status
            = campaign_fields.check_box :status, {id: "reject#{campaign.id}", :class => "rejectedservices"}, "Rejected", ""
        %td.notes{:style => "display: none"}
          = campaign_fields.text_field :notes, class: 'form-control mandatory', type: "input"
      %tr.medium
        %td.white{:colspan => 8}
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Approve", :name => 'Commit'
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Reject", :name => 'Reject'

复制此缩进代码并重试一次。

HAML是严格要求缩进的语言,因此,如果您没有缩进,则会发生错误

= form_for :campaign do
  - @campaigns.each do |campaign|
    = fields_for "campaign[]", campaign do |campaign_fields|
      %tr.medium
        %td= link_to campaign.name
        %td= campaign.status    
        %td
          -if ["New", "Updated"].include? campaign.status 
            = campaign_fields.check_box :status, {id: "#{campaign.id}", :class => "approvedservices"}, "Approved", ""
        %td{:style => "width:100px;"}
          -unless ["Rejected", "Approved"].include? campaign.status
            = campaign_fields.check_box :status, {id: "reject#{campaign.id}", :class => "rejectedservices"}, "Rejected", ""
        %td.notes{:style => "display: none"}
          = campaign_fields.text_field :notes, class: 'form-control mandatory', type: "input"
      %tr.medium
        %td.white{:colspan => 8}
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Approve", :name => 'Commit'
        %td.white{:style => "width:100px;"}
          = campaign_fields.submit "Reject", :name => 'Reject'

复制此缩进代码,然后再试一次。

谢谢,但乌兹别克先进入了。谢谢,不过乌兹别克先进去了。无论如何,谢谢你。