1
Railsアプリを4.0にアップグレードしています。私は以下の非推奨警告を受け取ります。私はこれにGoogleを持っていますが、これを変更する方法を示すものは見つかりませんでした。ここでRails 4 Has_Many With Finder_SQL非推奨
DEPRECATION WARNING: The :finder_sql association option is deprecated. Please find an alternative (such as using scopes)...
が警告を引き起こしている範囲である。
has_many :elective_instructors,
:class_name => "Instructor",
:finder_sql => proc { "SELECT DISTINCT people.* FROM people
INNER JOIN class_sections ON class_sections.instructor_id = people.id
INNER JOIN courses ON courses.id = class_sections.course_id
INNER JOIN taken_classes ON class_sections.id = taken_classes.class_section_id
WHERE
courses.core = FALSE
AND
taken_classes.student_id = #{id}
AND
people.type = 'Instructor'
AND
people.ignore = FALSE" }
任意のアイデアをいただければ幸いです。ありがとう!
おかげで渡すが、どのように私は、スコープを使用するようにhas_manyの関係コールを変更することができますか?スコープをhas_many行に連結しますか? –
私はあなたがちょうど "範囲をhas_manyにチェーンする"ことはできないと信じています。実のところ、私の例を注意深く見れば、スコープはMANYモデルであり、それ以外の方法ではありません。あなたの場合、スコープはInstructorモデルで設定する必要があります。 – Kalman