SQL-запрос в двух разных моделях Rails, которые не имеют связи

#sql #ruby-on-rails #postgresql

#sql #ruby-on-rails #postgresql

Вопрос:

У меня есть таблица арендодателей, и landlord_addresses таблица, и landlord_companies таблица. Из представления индекса арендодателей и с помощью landlords_controller мне нужно иметь возможность выполнять поиск в landlord_companies, НО у landlords и landlord_companies нет ассоциации ActiveRecord друг с другом. Очевидно, я не могу использовать то, что я написал ниже, но я не уверен, как выполнить поиск landlord_companies …любая помощь была бы отличной!

 @landlord = @landlords.includes(:landlord_company)
   .references(:landlord_companies)
   .where("landlord_companies.llc_name LIKE ?", "%#{params[:landlord_llc_search]}%")
  

Схема:

 create_table "landlords", force: :cascade do |t|
   t.string   "name"
   t.string   "contact_name"
   t.string   "contact_number"
   t.integer  "listing_agent_id"
   t.boolean  "own_application"
   t.boolean  "own_credit"
   t.boolean  "accepts_roommate_matchups"
   t.boolean  "management_company"
   t.datetime "created_at",                null: false
   t.datetime "updated_at",                null: false
end

create_table "landlord_companies", force: :cascade do |t|
   t.string   "llc_name"
   t.datetime "created_at",          null: false
   t.datetime "updated_at",          null: false
   t.integer  "landlord_address_id"
end
  

Комментарии:

1. на основе какого условия вы хотите выполнить поиск компаний-арендодателей?

2. @uzaif В таблице landlord_companies есть столбец llc_name, в котором мне нужно выполнить поиск.

3. и нет никакой связи между арендодателем и landlord_companies?

4. можете ли вы показать мне schema таблицу?

5. .references(:landlord_companies) удалите это и попробуйте

Ответ №1:

Я смог разобраться в этом и фактически использовать SQL-запрос, который я уже написал. Я думал, что не было никакой связи, но технически использовалось сквозное.

Landlord.rb

 has_many :landlord_companies, through: :landlord_addresses