我有办公室&位置模型。与has_one关系
我正在尝试使用搜索功能,用户尝试根据邮政编码查看所有办公室
在办公室控制器中我放置了这样的东西:
def index
if params[:search]
@offices = Office.find_each do |office|
return office if office.location.zip == params[:search]
end
else
@offices = Office.all
end
end
但是当我提交zip值时,我在视图中出现了nil错误。
office.rb
class Office < ActiveRecord::Base
has_one :location
end
location.rb
class Location < ActiveRecord::Base
belongs_to :office
end
答案 0 :(得分:0)
我不认为你的find_each块中的return语句正在按照你的意图行事。
尝试将控制器代码更改为:
def index
if params[:search]
@offices = []
Office.find_each do |office|
@offices << office if office.location.zip == params[:search]
end
else
@offices = Office.all
end
end