#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