以下代码在我尝试加载时不断抛出NoMethodError。它在我重置数据库之前工作得很早:
<% pstate= Place.where(statename: @agency.state) %>
<% fips_place = pstate.where(placeshort: @agency.city) %>
<%= place = 'PLACE:' + fips_place.first.placefp %>
但是当我运行时它在控制台中运行良好:
> pstate = Place.where(statename: "CA")
> fips_place = pstate.where(placeshort: "Los Angeles")
> place = "PLACE: " + fips_place.first.placefp
=> "PLACE: 85292"
控制器/ agencies_controller.rb:
def set_agency
@agency = Agency.find(params[:id])
end
模型/ agency.rb:
class Agency < ActiveRecord::Base
has_one :place
...
end
模型/ place.rb:
class Place < ActiveRecord::Base
belongs_to :agency
end
答案 0 :(得分:1)
我要走出困境,并猜测地方表格中没有排statename
和placeshort
匹配@agency.state
和@agency.city
。< / p>
然后fips_place.first
返回nil,而您尝试调用placefp
会导致错误。
它适用于控制台,因为您为statename
和placeshort
使用了不同的值。