私は、テーブルの原因、他のテーブルへの参照であるフィールドでクエリしたい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
ましたが、何も起こりません。