Emebedded Ruby:Short If Statement

fyd*_*lio 0 if-statement ruby-on-rails embedded-ruby

我目前正在学习红宝石,但我不能让我的嵌入式红宝石进行探索性工作,我将不胜感激.

我基本上试图在我的嵌入式ruby中编写这个if语句的简短版本

<% entity.attributes.each do |key, value| %>
  <%= if key == "name"
        link_to @entity, edit_entity_path(entity)
      else 
        value
      end %>
<%= end %>
Run Code Online (Sandbox Code Playgroud)

根据我的理解(和这篇文章),它应该像这样写

<% entity.attributes.each do |key, value| %>
  <%= key == "name" ? link_to @entity, edit_entity_path(entity) : value %>
<%= end %>
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.我究竟做错了什么?

Ralils错误消息: 语法错误,意外的tIVAR,期待keyword_do或'{'或'('... ey =="name")?...

请事先提供帮助

Igo*_*dov 5

有一个link_to_if帮助器,它将你的代码重构为:

<% entity.attributes.each do |key, value| %>
  <%= link_to_if key == "name", value, edit_entity_path(entity) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)