【问题标题】:Rails 5. How to search in associated models?Rails 5. 如何在关联模型中搜索?
【发布时间】:2017-06-17 21:49:10
【问题描述】:

所以我有 2 个模型:City 和 Country。 City belongs_to Country,你知道它是怎么运作的。 当我将城市名称放入搜索字段时如何找到国家?
我知道它如何与 1 个模型一起使用

@countries = Country.where(["name LIKE ?", "%#{params[:search]}%"])

但是在这种情况下该怎么办? 如有任何有用的链接或提示,我将不胜感激,因为我找不到类似的东西。

【问题讨论】:

    标签: ruby-on-rails rails-activerecord ruby-on-rails-5


    【解决方案1】:

    试试这个:

    @countries = Country.joins(:cities).where("cities.name LIKE ?", "%#{params[:search]}%")
    

    【讨论】:

      【解决方案2】:

      这可能是您正在寻找的:

      @countries = Country.all.includes(:cities).where("cities.name" => params[:search]).all
      

      顺便说一句,将搜索表单条目直接放入原始帖子中所写的 SQL 查询是一个坏主意,因为它会打开您的应用程序以进行 SQL 注入。在标题“A1 SQL 注入”下阅读这篇文章:

      https://blog.codeship.com/preproduction-checklist-for-a-rails-app/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多