Hi there,
Why do I get ‘true’ when:
- I call: @agency.all_agents_done? and
-
@gency has at least 3 Agents
The Agency model is:
class Agency < ActiveRecord::Base
has_many :agents
def all_agents_done? # (don't look for any real sense in this
method…)
i=0
self.agents do |agent| # (@gency has at least 3 Agents…)
i=i+1 if (1 == 1)
end
if i == 0
true
else
false
end
end
end
Thanks for any hint!
Tom
On Thu, May 7, 2009 at 9:31 AM, Tom Ha [email protected] wrote:
 class Agency < ActiveRecord::Base
    true
Posted via http://www.ruby-forum.com/.
In the question at the tops and the comment, you alternate between
@agency and @gency – if this inconsistency exists in the method that
has the instance variable(s) @agency and/or @gency that is calling
this code, that could be part of the source of the problem.
Sorry, that’s just a typo in my question, so the problem is still there
and lies elsewhere, but I just don’t get it - everything seems to be
correct…
Am I stupid?
Christopher D. wrote:
On Thu, May 7, 2009 at 9:31 AM, Tom Ha [email protected] wrote:
 class Agency < ActiveRecord::Base
    true
Posted via http://www.ruby-forum.com/.
In the question at the tops and the comment, you alternate between
@agency and @gency – if this inconsistency exists in the method that
has the instance variable(s) @agency and/or @gency that is calling
this code, that could be part of the source of the problem.
i’m sorry, i know the comment says not too, but I have to look for sense
in the method, and if i do, it appears that you are essentially asking
if there are any agents at all?? if that is the case, why are you simply
not writing:
def all_agents_done?
self.agents.size == 0
end
and why do you have this, “if (1 == 1)” condition? this is like asking
“if true”
Holy sh… I got it:
“self.agents do |agent| …” was missing the “.each”:
-> “self.agents.each do |agent| …”
Guess I can answer that “am I stupid” question now…
Thanks for replying - well, there’s not much “sense” in the example
because I took stuff out, to make it shorter.
Basically, the problem in the original example above is apparently, that
@agency.agents has a ‘length’/‘size’ of 4, but the counter i does NOT
get incremented in the loop "self.agents do |agent| … " (‘i’ stays
0…).
But why? What am I missing? I just don’t get it…