Hello all,
I am trying to run a unit test in a Rails project of mine (Rails
1.2.2, Ruby 1.8.4 (2005-12-24) [i486-linux]), and am running into the
following error:
1) Error:
test_pattern_splits(PatternSplitTest):
TypeError: $_ value need to be String (nil given)
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:74:in `split''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:74:in `add_on_blank''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:73:in `add_on_blank''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:409:in `validates_presence_of''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:822:in `run_validations''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:816:in `run_validations''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:780:in `valid_without_callbacks?''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
callbacks.rb:299:in `valid?''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:751:in `save_without_transactions''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
transactions.rb:129:in `save''
<snip>
The model is PatternSplit and the attribute is:
t.column :split, :smallint, :null => false
I assumed this was just a result of a simple bug in my code somewhere,
but I wasn''t able to find anything obviously wrong. I decided to break
at
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/active_record/
validations.rb:74
and debug further, and I came across a very strange condition.
The line causing the problem is:
value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) :
@base[attr.to_s]
Debugging session:
irb(#<ActiveRecord::Errors:0xb77739ac>):001:0> @base.respond_to?
(attr.to_s)
=> true
irb(#<ActiveRecord::Errors:0xb77739ac>):002:0> @base.send(attr.to_s)
TypeError: $_ value need to be String (nil given)
from (irb):2:in `split''
from (irb):2:in `each''
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/
active_record/validations.rb:75:in `each''
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/
active_record/validations.rb:73:in `add_on_blank''
<snip>
irb(#<ActiveRecord::Errors:0xb77739ac>):003:0> attr.to_s
=> "split"
irb(#<ActiveRecord::Errors:0xb77739ac>):004:0> @base.send
"split"
TypeError: $_ value need to be String (nil given)
from (irb):4:in `split''
from (irb):4:in `each''
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/
active_record/validations.rb:75:in `each''
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.2/lib/
active_record/validations.rb:73:in `add_on_blank''
<snip>
irb(#<ActiveRecord::Errors:0xb77739ac>):005:0> @base.split
=> 7
irb(#<ActiveRecord::Errors:0xb77739ac>):006:0> @base.send
"split"
=> 7
What is going on here?
Thanks in advance,
jlrc
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---