nil:NilClass,Ransack的未定义方法“ streets”

问题描述

我有一个城市模型:

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 (将#修改为@)