Ruby on Rails Monday, November 22, 2010

I feel like I'm missing something rather important in both
circumstances, but I can't seem to figure either out:

1) I have a model named TestCase -
class TestCase < ActiveRecord::Base
belongs_to :test_suite
scope :queued, lambda { where("test_cases.suite_id IS NOT NULL") }
scope :assigned_to, lambda { |sid| where(:suite_id => sid) }
end

The controller can interact with it perfectly fine. When trying to
display information from it in either the view or via the view helper
such as TestCase.all, I get a NoMethodError (undefined method `all'.)
If I call it with ::TestCase.all, that works. I had a theory that it
has something to do with the fact that it's associated to another
model (belongs_to ...), I just can't find anything to confirm that or
tell me why that happens.


2) On another project I have yet another model named Artwork. Again,
it has associations (belongs_to). In this case, I can access it just
fine in the view, and all the methods within it work fine for the
controller except if I try to do dynamic method calls. In this case I
have a simple toggle for -

@artwork = Artwork.find(params[:id])
value = params[:value].to_sym
@artwork.update_attributes(value => !@artwork.method(value).call)

That gives me a NoMethodError. However, if I add - if
@artwork.respond_to?(value) - then it works as expected. Again, I
can't figure out why.

Both items I get working using the mentioned methods, but again, I
feel like I'm really missing something important here.

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

No comments:

Post a Comment