Ruby on rails Rails 4.2+;PG-无法初始化ActiveRecord对象
我有一个简单的AR模型:Ruby on rails Rails 4.2+;PG-无法初始化ActiveRecord对象,ruby-on-rails,ruby,postgresql,activerecord,ruby-on-rails-4,Ruby On Rails,Ruby,Postgresql,Activerecord,Ruby On Rails 4,我有一个简单的AR模型: class Purchaser < ActiveRecord::Base attr_accessor :name has_many :purchases def initialize(opts={}) @name = opts[:name] end end 以下是错误: activerecord-4.2.0.beta1/lib/active_record/transactions.rb:373:in `clear_transaction
class Purchaser < ActiveRecord::Base
attr_accessor :name
has_many :purchases
def initialize(opts={})
@name = opts[:name]
end
end
以下是错误:
activerecord-4.2.0.beta1/lib/active_record/transactions.rb:373:in `clear_transaction_record_state': undefined method `[]' for nil:NilClass (NoMethodError)
from activerecord-4.2.0.beta1/lib/active_record/transactions.rb:304:in `ensure in rollback_active_record_state!'
from activerecord-4.2.0.beta1/lib/active_record/transactions.rb:304:in `rollback_active_record_state!'
from activerecord-4.2.0.beta1/lib/active_record/transactions.rb:283:in `save'
from activerecord-4.2.0.beta1/lib/active_record/persistence.rb:34:in `create'
from activerecord-4.2.0.beta1/lib/active_record/relation.rb:141:in `block in create'
from activerecord-4.2.0.beta1/lib/active_record/relation.rb:300:in `scoping'
from activerecord-4.2.0.beta1/lib/active_record/relation.rb:141:in `create'
from activerecord-4.2.0.beta1/lib/active_record/relation.rb:211:in `find_or_create_by'
from activerecord-4.2.0.beta1/lib/active_record/querying.rb:6:in `find_or_create_by'
我做错了什么?Ruby 2.1.2,PostgreSQL。您正在重写ActiveRecord中的
initialize
方法。您应该调用super
来执行ActiveRecord(父)构造函数。您可以在执行代码后执行。比如:
def initialize(opts={})
@name = opts[:name]
super
end
希望这有帮助
def initialize(opts={})
@name = opts[:name]
super
end