我收到以下代码的错误,但是使用记录器行或调试输出是正确的。这对我来说有点奇怪。 (Rails 3.1.0和3.0.9以及Ruby 1.8.7)
控制器包含:
def index
@privatmessages = Privatmessage.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @privatmessages }
end
end
index.htm.erb
<% @privatmessages.each do |privatmessage| %>
<%= privatmessage.id %>
<% end %>
该代码产生错误:
Privatmessages#index中的ArgumentError 显示../app/views/privatmessages/index.html.erb,其中第2行引发: 错误的参数数量(1表示0)
但是如果我在控制器上添加以下行,则输出正确并且没有错误:
logger.info "Messages: {#@privatmessages.to_yaml}"
或者如果我在index.html.erb中添加每个循环的内部行:
<%= debug privatmessage %>
有人对我有建议吗?
答案 0 :(得分:2)
发现问题并解决了!
问题是我在表中使用“send”作为列名,但“send”是Rails核心的保留方法。将表中的列重命名为“sendout”后,它可以正常工作。