On 8 July 2011 21:19, Yennie <[email protected]> wrote:
> Hi everyone,
>
> I am testing the validation of association of the model but i can a
> error.. plzz help
>
>
> error
> /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> active_record/matchers/association_matcher.rb:27:in `have_many': wrong
> number of arguments (2 for 1) (ArgumentError)
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:429:in `method_missing'
>        from test/unit/prescription_test.rb:71:in `block in
> <class:PrescriptionTest>'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:306:in `call'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:306:in `merge_block'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:301:in `initialize'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:199:in `new'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/shoulda-2.11.3/lib/shoulda/
> context.rb:199:in `context'
>        from test/unit/prescription_test.rb:64:in `<class:PrescriptionTest>'
>        from test/unit/prescription_test.rb:3:in `<top (required)>'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/
> active_support/dependencies.rb:235:in `load'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/
> active_support/dependencies.rb:235:in `block in load'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/
> active_support/dependencies.rb:227:in `load_dependency'
>        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.9/lib/
> active_support/dependencies.rb:235:in `load'
>        from /usr/local/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `block
> in <main>'
>        from /usr/local/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `each'
>        from /usr/local/lib/ruby/1.9.1/rake/rake_test_loader.rb:5:in `<main>'
> Loaded suite /usr/local/lib/ruby/1.9.1/rake/rake_test_loader
> Started
>
>
>
> there is one
>
> prescription model
>  has _many :others
>  has_many :phrases, :through => :reasons

You also need has_many :reasons in order to specify has_many through
(I think).  Or should this be through :others?

>
> phrase model
>  has_many :others
>
> reason model
>  validates_presence_of :phrase_id, :message => "ERROR_MISSING_PHRASE"
>  belongs_to :phrase

Again you will need belongs_to prescription.

>
> other model
>  validates_presence_of :phrase_id, :message => "ERROR_MISSING_PHRASE"
>  belongs_to :phrase

and belongs_to prescription.

>
> test file of prescription_test.rb
> context "checking assocciation" do
>  should have_many :phrases, :through => :others

Above you have specified through reasons not through others.  Either
the test or the relation is wrong.

Colin

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to