Ruby on rails:可以将String转换为Integer for if condition

时间:2014-12-19 10:01:54

标签: ruby-on-rails erb

我在erb页面上有一个非常简单的代码(Ruby on Rails)。错误很奇怪:无法将String转换为整数

代码非常简单:)

<% if q['year'] %>
    q[YEAR]  <%= q['year'] %>
<% end %>

任何帮助?:)互联网上描述了很多这样的错误,但不像我的那样!

3 个答案:

答案 0 :(得分:2)

q可能是Array的实例,而不是Hash,因此q.[]方法需要整数参数。

答案 1 :(得分:1)

使用调试器并验证q的类。它似乎不是哈希值,因此无法通过字符串键访问它。看起来q是字符串或数组。

答案 2 :(得分:1)

调试视图中的内容最好的方法是设置debugger,如下所示:

<% debugger %>

然后你可以评估表达式,看看有什么。在http://guides.rubyonrails.org/v4.0.8/debugging_rails_applications.html(rails 4)或http://guides.rubyonrails.org/v3.2.19/debugging_rails_applications.html(rails 3)或http://guides.rubyonrails.org/v2.3.11/debugging_rails_applications.html(rails 2)中有调试指南

您可以做的另一件事,远离使用debugger,是使用debug帮助程序打印出变量:

<%= debug q %>

这将打印q包含的任何人类可读版本。