ナンバーと景品の2つのクラスがあります。
class Number < ActiveRecord::Base
belongs_to :account
has_many :freebies
end
class Freebie < ActiveRecord::Base
belongs_to :number
attr_accessible :name, :data
has_attached_file :data, :path => "freebies/:id_partition/:filename"
def to_s
name
end
end
has_manyとbelongs_toの関係を持つ他のすべてのクラスは正常に機能しますが、次のように呼び出すと次のようになります。
n = Number.last
n.freebies.create
このエラーが発生します:
NameError: uninitialized constant Number::Freeby
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/inheritance.rb:111:in `compute_type'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/reflection.rb:172:in `klass'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:148:in `transaction'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:431:in `create_record'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:119:in `create'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.8/lib/active_record/associations/collection_proxy.rb:46:in `create'
from (irb):20
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
from /Users/Robby/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Freebieクラスはieで終わり、RailsはFreebieではなく単数バージョンの「Freeby」を作成しようとするため、他にもいくつか問題がありました。それでも、なぜこれが機能しないのかわかりません。