错误:参数数量错误(1表示0)=>如果没有使用调试或.to_yaml

时间:2011-09-21 19:37:39

标签: ruby-on-rails-3

我收到以下代码的错误,但是使用记录器行或调试输出是正确的。这对我来说有点奇怪。 (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 %>

有人对我有建议吗?

1 个答案:

答案 0 :(得分:2)

发现问题并解决了!

问题是我在表中使用“send”作为列名,但“send”是Rails核心的保留方法。将表中的列重命名为“sendout”后,它可以正常工作。