我非常对Ruby很新,并且我试图根据某些单词是否包含在数组中来显示两条消息中的一条。我当前的控制器包含以下内容:
@cookie = ["gluten", "sugar", "dairy", "chocolate"]
我的观点包含:
<%= @cookie.include?"gluten" %>
以上返回'true'并在页面上打印就好了。但是,尝试以下任一方法时,页面上都不会打印任何内容。该页面呈现正常,没有错误,但没有消息:
<%= puts "Sorry" if @cookie.include?"gluten" %>
和
<%=
if @cookie.include?("gluten")
puts "Sorry, you cannot eat this."
else
puts "You have the greenlight."
end
%>
我希望我在语法中创建一个非常简单的错误,或者误解了include的用法?功能
答案 0 :(得分:0)
看着它看起来像是红宝石,http://rubyfiddle.com/riddles/d6798。
必须是rails错误,请尝试
<% if @cookie.include?("gluten") %>
<%= "Sorry, you cannot eat this." %>
<% else %>
<%= "You have the greenlight." %>
<% end %>
答案 1 :(得分:0)
如果你想在一个erb语句中使用它,你可以这样做:
不要使用&#34; put&#34;。 &#34;&lt;%=&#34;已经做了一个&#39; to_s&#39;并将值输出到响应正文。如果您使用了&#39; puts&#39;。
,您可能已经看到结果会显示在您的日志中另外 - 对于erb,&lt;%...%&gt;语法,即逻辑,通常是每个&#39;或者&#39;如果&#39;州,&lt;%=%&gt;用于写入屏幕。大多数情况下,它是像&lt;%= user.name%&gt;
这样的ruby对象的属性