0

我对 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
%>

我希望我在语法上创建了一个非常简单的错误,或者我误解了包含的用法?功能。

4

2 回答 2

0

看着红宝石,它似乎是健全的,http://rubyfiddle.com/riddles/d6798

一定是rails错误所以试试

<% if @cookie.include?("gluten") %>
  <%= "Sorry, you cannot eat this." %>
<%  else %>
  <%= "You have the greenlight." %>
<%  end %>
于 2013-05-21T20:29:34.623 回答
0

如果您想在一个 erb 语句中完成所有操作,您可以执行以下操作:

不要使用“看跌期权”。"<%=" 已经在执行 'to_s' 并将值输出到响应正文。如果您使用“puts”,您可能已经在日志中看到了结果。

另外 - 对于 erb,<% ... %> 语法,即逻辑,通常是“每个”或“如果”状态,<%= %> 用于写入屏幕。大多数时候它是像 <%= user.name %> 这样的 ruby​​ 对象的属性

于 2013-05-21T20:39:38.313 回答