【问题标题】:Got "else" with no preceding "if" error ruby [closed]得到“else”,前面没有“if”错误红宝石[关闭]
【发布时间】:2017-12-07 11:50:02
【问题描述】:

链接

- if current_user
= link_to "Edit", edit_job_path(@job), class: "btn btn-sm btn-default"
= link_to "Delete", job_path(@job), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-sm btn-default"

- else

 = link_to "Back", root_path, class: "btn btn-sm btn-default"

这会返回:

Got "else" with no preceding "if" error ruby

这是为什么呢?

【问题讨论】:

  • 由于缩进
  • 让我们试试下面给出的解决方案

标签: ruby-on-rails ruby haml


【解决方案1】:

虽然问题中没有明确说明,但我认为它应该是一个haml文件。

这是因为第一行 if 之后的正文没有缩进。所以if 正文被解析为空。然后else 行将自行启动。

【讨论】:

  • 你的意思是“haml文件”?
  • @MarekLipka 对。不错的收获。
【解决方案2】:
- if current_user
  = link_to "Edit", edit_job_path(@job), class: "btn btn-sm btn-default"
  = link_to "Delete", job_path(@job), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-sm btn-default"

- else

  = link_to "Back", root_path, class: "btn btn-sm btn-default"

【讨论】:

  • @Anthony 如果对您有帮助,请随时接受答案。
  • 不一致的缩进:2 个空格用于缩进,但文档的其余部分使用 1 个制表符缩进。运行时出现此错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多