正しい構文と演算子を見つけて、レコードがIDがアレイに格納されているIDと同じであるかどうかを調べる際に問題があります。 has any?
の機能などはありますか?レコードがレコード内のIDと同じIDを持つ場合は、
@problem = Remedy.where(["LOWER(\"remedyName\") LIKE?", "%#{params[:searchremedy]}%".downcase]).pluck(:id)
@pretreatments = Treatment.joins(:remedies_treatment).where(:remedies_treatment_remedy_id == @problem)
私は、コードを更新しました:私は今取得していますエラーがあるしかし
ids = Remedy.where(["LOWER(\"remedyName\") LIKE?", "%#{params[:searchremedy]}%".downcase]).pluck(:id)
@pretreatments = Treatment.joins(:remedies_treatments).where(remedies_treatments: { remedy_id: @problem })
:
のActiveRecordを使用して SELECT "treatments".* FROM "treatments" INNER JOIN "remedies_treatments" ON "remedies_treatments"."treatment_id" = "treatments"."id" WHERE "remedies_treatment"."remedy_id" IS NULL
Completed 500 Internal Server Error in 157ms (ActiveRecord: 17.0ms)
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: missing FROM-clause entry for table "remedies_treatment"
LINE 1: ...atments"."treatment_id" = "treatments"."id" WHERE "remedies_...
^
: SELECT "treatments".* FROM "treatments" INNER JOIN "remedies_treatments" ON "remedies_treatments"."treatment_id" = "treatments"."id" WHERE "remedies_treatment"."remedy_id" IS NULL):
app/controllers/treatments_controller.rb:116:in `index'
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "remedies_treatment"
LINE 1: ...atments"."treatment_id" = "treatments"."id" WHERE "remedies_...
^
: SELECT "treatments".* FROM "treatments" INNER JOIN "remedies_treatments" ON "remedies_treatments"."treatment_id" = "treatments"."id" WHERE "remedies_treatment"."remedy_id" IS NULL
from C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `async_exec'
I:あなたは
Treatment
に次の関係を持つべきですどんなことがあってもそれが必要です。 –モデル間の関係を投稿しないでください。いくつかの結合で解決できるようです。 – lusketeer
自分のコードですか?変数 'remedies_treatment_remedy_id'が' @ problem'に格納されている値のいずれかを持つすべてのTreatmentsを選択しようとしています。 –