问题描述
class Geo::City < Smth
self.table_name = 'cities_table'
has_many :streets,class_name: "Geo::Street",primary_key: :geo_code,foreign_key: :geo_code
因此,当我在控制台中尝试时,会得到所需的结果,即城市中的所有街道
Geo::City.find_by(geo_code: '09679117').streets
=> #<ActiveRecord::Associations::CollectionProxy
[#<Geo::Street geo_code: "09679117",city_name: "Bergtheim",street_name: "Good Street",geometry: "0106000020E61000000100000001030000000122200090000...">,#<Geo::Street geo_code: "09679117",street_name: "Bad Street",geometry: "0106000020E61000000100000001030000000100000009111...">]
因此,要搜索城市,我使用了select2,它的运行效果非常完美。我选择的是柏林,一经提交,便获得了柏林的15条第一街。我以为在控制器中我基本上可以做到这一点,我在控制台中做了以列出街道。我正在为此使用Ransack
def filter
if params[:q].present? && params[:q][:geo_code_eq].present?
@city = Geo::City.find_by(geo_code: params[:q][:geo_code_eq])
@collection = [["#{@city}","#{params[:q][:geo_code_eq]}"]]
end
@streets = @city.streets.limit(15)
@q = @streets.ransack(params[:q])
end
这将返回我在标题“ nil:NilClass的未定义方法'streets'”中输入的错误。我究竟做错了什么?附言所有名字都是假的,只是给人留下印象。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)