0

「初期化されていない定数Assignment::AssignmentsCourse」というエラーが発生します。これが私のモデルです:


Assignment.rb

class Assignment < ActiveRecord::Base
    has_many :assignmentsCourses
    has_many :courses, :through => :assignmentsCourses
    attr_accessible :name, :dateAssigned, :dateDue, :description, :weight, :category_tokens
    attr_reader :category_tokens

    def category_tokens=(ids)
        puts 'el ids: ', ids.split(",")
        self.courseIds = ids.split(",")
    end
end

course.rb

class Course < ActiveRecord::Base
    has_and_belongs_to_many :assignments
end

AssignmentCourse.rb

class AssignmentCourse < ActiveRecord::Base
    belongs_to :assignment
    belongs_to :course
    attr_accessible :assignment_id, :course_id
end
4

1 に答える 1

3
has_many :assignmentsCourses

これとすべてのフィールドはキャメルケースにしないでください。ルビースタイルではなく、クラスの読み込みが中断されます。終わりも複数形にする必要があります。両方の単語を複数形にすることはできません。舞台裏では、activerecordは指定したシンボルを非複数化し、と同様にクラスの読み込みを行いrequireます。あなたが試しrequire 'activeRecord'た場合、それは例えばうまくいきません。Rubyは、アンダースコアを使用して複数の単語のクラス名を導き出します。

そのはず: has_many :assignment_courses

変更もたくさんあります。アクセサは、ruby_style_is_to_underscoreのいずれかでキャメルケースに入れてはいけません。

于 2012-01-29T03:06:41.533 に答える