我无法保存rails模型,它会预先显示"ActiveRecord::RecordNotSaved".Thanks。
m = Mentor.last
m.save
=> false
m.save!
ActiveRecord::RecordNotSaved
m.valid?
=> true
m.errors.any?
=> false错误跟踪是:
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/persistence.rb:104:in `save!'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/validations.rb:56:in `save!'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/attribute_methods/dirty.rb:33:in `save!'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/transactions.rb:246:in `block in save!'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/transactions.rb:208:in `transaction'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.2/lib/active_record/transactions.rb:246:in `save!'
from (irb):120
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.2/lib/rails/commands/console.rb:47:in `start'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.2/lib/rails/commands/console.rb:8:in `start'
from /home/charizard/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.2/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'发布于 2013-08-14 13:04:17
我发现了这些家伙。我使用MentorObserver进行before_save回调,该回调返回false。
如果任何回调返回false,则保存将不再继续,并将引发"ActiveRecord::RecordNotSaved“异常.
我是通过使用git均分工具找到这个的。一个很棒的工具。
https://stackoverflow.com/questions/18228689
复制相似问题