nil的未定义方法:使用关联渲染Thinking Sphinx Collection时的NilClass

时间:2013-04-30 05:18:57

标签: ruby-on-rails ruby ruby-on-rails-3.2 sphinx thinking-sphinx

实际上,这是一个愚蠢的问题,但我很困惑。

我有一个思考sphinx运行的Web应用程序,这些是我的模型

模型/学院

class College < ActiveRecord::Base
belongs_to :city

模型/城市

class City < ActiveRecord::Base
has_many :colleges
belongs_to :state

模型/状态

class State < ActiveRecord::Base
has_many :state

这是我的指数

ThinkingSphinx::Index.define 'college', :with => :active_record do
  indexes name
end

问题是当我尝试将搜索结果呈现到视图中时

控制器

@colleges = College.filter_by_params(params).search params[:keyword]

在视图中我想打印学院的城市和州名称

<% @colleges.each do |college| %>
<tr>
<td>College Name <%= college.name %><td>
<td>City <%= college.city.name %><td>
<td>State <%= college.city.state.name %><td>
</tr>

然后我得到一个错误的未定义方法`city'为nil:NilClass

我也试着检查

college.city.inspect

结果是对的!!我想念一下吗?

1 个答案:

答案 0 :(得分:0)

仅在p college循环内插入@colleges.each。我相信在一次迭代中你会获得nil个对象。这导致错误。