我目前正在学习ruby,但我不能让我的嵌入式红宝石工作proberly和帮助,将不胜感激。Emebedded Ruby:短如果语句
基本上,我试图写的这个if语句的短版在我的嵌入式红宝石
<% entity.attributes.each do |key, value| %>
<%= if key == "name"
link_to @entity, edit_entity_path(entity)
else
value
end %>
<%= end %>
根据我的理解(这post)应该为能写这样的
<% entity.attributes.each do |key, value| %>
<%= key == "name" ? link_to @entity, edit_entity_path(entity) : value %>
<%= end %>
这似乎并不奏效。我究竟做错了什么?
Ralils错误消息: 语法错误,意想不到的TIVAR,期待 keyword_do或 '{' 或 '(' ... EY == “名称”)? ...
THX在您的帮助
在Ruby中使用三元运算符时,您的'if:else'必须每个都包含在圆括号中,或者如果pass它们需要使用'function(args)'形式而不是空白(除了'+ -/*'等)。例如'真的? true.is_a? TrueClass:false'会产生一个错误,但是“真的? true.is_a?(TrueClass):false'不。如果你使用三元运算符返回,你可以像'断言? (返回东西):(返回something_else)' –