控制器中的Rails SystemStackError(堆栈级别太深)

时间:2012-07-28 21:50:59

标签: ruby-on-rails ruby stack-overflow

我有一个简单的控制器在Twitter上进行搜索。我的搜索在rails控制台上工作得很好,但是当我运行它时我得到一个堆栈溢出错误,并且无法弄清楚发生了什么。我的日志文件显示了反复运行的索引方法。

Controller 

class TimelinesController < ApplicationController
  def index
    @timelines = Twitter.search("Ford Edge", :rpp => 3, :result_type => "recent")
    respond_to do |format|
        format.html index.html.erb
        format.json { render json: @timelines }
    end
  end
end

View

<% @timelines.each do |timeline| %>
  <tr>
    <td><%= timeline.from_user %></td>
    <td><%= timeline.text %></td>
  </tr>
<% end %>

欣赏任何想法。谢谢。

2 个答案:

答案 0 :(得分:1)

我认为这是违规行:format.html index.html.erb

index.html.erb不在引号中,因此它看起来像是对ruby的方法调用序列,第一个是index,它导致无限递归。

当您在没有参数的情况下调用format.html时,Rails应该为您呈现正确的模板,如果没有,请确保将模板名称包装在引号中。

答案 1 :(得分:0)

尝试:

@timelines。的结果。每个{...