0

私は、テーブルの原因、他のテーブルへの参照であるフィールドでクエリしたいcause.rbというスコープを持つというモデルを持っています。pesquisaモデルの原因から、city というフィールドを持つテーブルの場所を呼び出したいと思います。

原因表:

class CreateCauses < ActiveRecord::Migration
  def change
    create_table :causes do |t|
      t.string :title, null: false
      t.text :description, null: false
      t.boolean :anonymous, default: false
      t.integer :count_likes, default: 0
      t.integer :count_dislikes, default: 0
      t.integer :count_visits, default: 0
      t.references :user
      t.references :category

      t.timestamps
    end
    add_index :causes, :user_id
    add_index :causes, :category_id
  end
end

class AddPlaceIdToCauses < ActiveRecord::Migration
  def change
    add_column :causes, :place_id, :integer
  end
end

場所の表:

class CreatePlaces < ActiveRecord::Migration
  def change
    create_table :places do |t|
      t.string :description
      t.decimal :latitude
      t.decimal :longitude
      t.references :city

      t.timestamps
    end
    add_index :places, :city_id
  end
end

範囲は次のとおりです。

scope :pesquisa, ->(pesquisa) { where("cause.place.city like :p or category_id like :p ", p: "%#{pesquisa}%") }
default_scope :order => "id desc"

この問題を解決するにはどうすればよいですか? 私はテーブルの場所で都市を呼び出すために上記を試みcause.place.cityましたが、何も起こりません。

4

0 に答える 0