私は ActiveRecord を学び始めたばかりで、すべてがどのように機能するかを理解するためにちょっとしたことを試しています。次の sqlite3 データベースで次のコードを試しました。
ルビー:
class Balances < ActiveRecord::Base
def initialize
@balance = 50
update_attribute(:balance, @balance)
end
def withdraw amount
update_attribute(:balance, @balance-amount)
end
end
SQL:
CREATE TABLE balance(
balance 50
);
私が書くとき:
balance = Balances.new
私は得る:
NoMethodError: undefined method `delete' for nil:NilClass
from /Users/Solomon/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-3.2.3/lib/active_record/attribute_methods/write.rb:28:in `write_attribute'
from /Users/Solomon/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-3.2.3/lib/active_record/attribute_methods/dirty.rb:67:in `write_attribute'
from /Users/Solomon/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-3.2.3/lib/active_record/attribute_methods/write.rb:14:in `balance='
from /Users/Solomon/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-3.2.3/lib/active_record/persistence.rb:180:in `update_attribute'
どうしてこれなの?私は何か間違ったことをしていますか?