私は現在、生徒と保護者の間に多対多の関係を持たせるように fedena を調整しています (1 対多の生徒 : 保護者ではなく)。
だからこれは私がやったことです:
class Guardian < ActiveRecord::Base
has_many :parentings, :dependent=>:destroy
has_many :students, :through=>:parentings
end
class Student < ActiveRecord::Base
has_many :parentings, :dependent=>:destroy
has_many :guardians, :through=>:parentings
end
class Parenting < ActiveRecord::Base
attr_accessible :student_id, :guardian_id
belongs_to :student
belongs_to :guardian
end
Guardian.rb内には、次のクラス メソッドがありました。
def self.shift_user(student)
# find all the guardians having a ward_id = student.d (comment my own)
self.find_all_by_ward_id(student.id).each do |g|
..
end
新しく定義されたリレーションシップを使用して変更したい
self.find_all_by_student_id(student.id).each do |g|
..
うまくいきません!ガーディアンには Parenting クラスを通じて多くの生徒がいるとすでに定義しているので、うまくいくと思いました..上記のコマンドのいくつかの順列を試しましたが、エラーが発生し続けます。
undefined method `find_all_by_student_id' for #<Class:0x1091c6b28>
アイデア?私は使用ruby 1.8.7
していますRoR 2.3.5