1

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

我有一个 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>

然后我得到一个错误 undefined method `city' for nil:NilClass

我也尝试检查

college.city.inspect

结果是正确的!我错过了什么吗?

4

1 回答 1

0

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

于 2013-04-30T05:38:31.380 回答