我在我的/views/
个文件中有这个:
<%= Result.find(:all) %>
结果是一个模型。这在控制台中工作正常但它在视图中返回['#,'#]
。它已经认识到我有两个结果,但它没有显示结果。有什么想法吗?
答案 0 :(得分:6)
它不是正在返回的哈希,它是您看到的串联字符串表示。
<%= %>
与控制台中的puts
相同。例如:
> puts User.all
#<User:0x00000102f98550>
...
如果您想查看使用inspect
所需的所有属性。例如:
> puts User.all.inspect
[#<User id: 2, email: "ga...
所以:
<%= Result.find(:all).inspect %>
虽然仍然不是很好的输出,但我猜你这样做是为了调试。
答案 1 :(得分:1)
或者,如果你想观看你应该做的所有Results
中的每一个
<% Result.find(:all) do |result| %>
<%= result.your_result_attribute %>
<% end %>
答案 2 :(得分:1)
假设您正在使用Rails&lt; 3
你获得#的原因是因为下一个字符是&lt;,你的浏览器是 如果你想快速查看它是什么,将其解释为HTML元素,将其包装在h()
中即
<%= h(Result.find(:all).inspect) %>
答案 3 :(得分:1)
使用或debugger
调试或logger.debug
将其输出到development.log中。
您在此处所做的是Result.find(:all).to_s
,因为<%= %>
会执行.to_s
要正确调试:
<% logger.debug "Result.find(:all): #{Result.find(:all).inspect}" %>