我正在玩弄了解案例陈述并在rails中使用帮助器。我在视图中有这个代码
<% case %>
<% when post.comments.count > 4 %>
<%= image_tag "fresh.png", size: "28x28" %> 5+ comments
<% when post.comments.count > 2 %>
<%= image_tag "rotten.jpeg", size: "31x31" %> 3+ comments
<% else %>
<% end %>
它是一段有趣的代码,根据用户对其帖子的评论数量,向用户提供新鲜或腐烂番茄的图片。无论如何,我想使用帮助器来解决我的视图中所有这些混乱的代码
我做了一个帮手方法
def rotten_tomatoes(post)
case
when post.comments.count > 4
image_tag "fresh.png", size: "28x28"
when post.comments.count > 2
image_tag "rotten.jpeg", size: "31x31"
else
end
end
我希望view显示image_tag,并且还会输出显示5条评论或3条评论的字符串,但是当我输入此代码时
def rotten_tomatoes(post)
case
when post.comments.count > 4
image_tag "fresh.png", size: "28x28"
"5+ comments"
when post.comments.count > 2
image_tag "rotten.jpeg", size: "31x31"
"3+ comments"
else
end
end
只有字符串在视图中打印出来,而不是图片标签对不起有人知道为什么?
我试过这个
image_tag("fresh.png", size: "28x28")
产生了相同的结果
和
image_tag "fresh.png", size: "28x28",
产生语法错误
答案 0 :(得分:1)
[A] nyone知道为什么吗?
是。在Ruby中,一段代码的返回值是最后评估的部分。例如,在代码块中:
image_tag "fresh.png", size: "28x28"
"5+ comments"
最后评估的部分是:
"5+ comments"
这就是原因。