form_for 错误,每个错误和 fields_for 合并
Error with form_for, each and fields_for combined
我正在尝试创建一个 table,其中包含一种要编辑的数据形式。但是,我收到以下错误:
syntax error, unexpected ')' at line 73
第 73 行是 %tr.medium
。我知道这不是问题所在,我认为这是 fields_for
行,但我不确定为什么这会导致问题,因为我基于类似的在线示例。
= 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,它根据其跳格级别决定代码块 "level"。
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'
复制这段缩进的代码并尝试一次。
我正在尝试创建一个 table,其中包含一种要编辑的数据形式。但是,我收到以下错误:
syntax error, unexpected ')' at line 73
第 73 行是 %tr.medium
。我知道这不是问题所在,我认为这是 fields_for
行,但我不确定为什么这会导致问题,因为我基于类似的在线示例。
= 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,它根据其跳格级别决定代码块 "level"。
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'
复制这段缩进的代码并尝试一次。