In that third line, he calls a class method find_by_name on the
Deployment class. So naturally I look at Deployment.rb where the class
is initialized. But there is no find_by_name method. What I see is this:
validates_presence_of :name
def self.get(name)
find_by_name!(name)
end
So why does this not return an undefined method error? There's no setter
or getter (attr_accessor) for find_by_name so it has no definition
anywhere. Second point is find_by_name! is not declared anywhere either
so we pass the name local variable into it, but it's not defined
anywhere. Anyone understand what's going on here? Thanks for response.
In that third line, he calls a class method find_by_name on the
Deployment class. So naturally I look at Deployment.rb where the class
is initialized. But there is no find_by_name method. What I see is this:
validates_presence_of :name
def self.get(name)
find_by_name!(name)
end
So why does this not return an undefined method error? There's no setter
or getter (attr_accessor) for find_by_name so it has no definition
anywhere. Second point is find_by_name! is not declared anywhere either
so we pass the name local variable into it, but it's not defined
anywhere. Anyone understand what's going on here? Thanks for response.
ActiveRecord (or Model, not sure which in Rails 3) has some dynamic finder methods. If "name" is a field for that model then "find_by_name" gets caught and converted into the appropriate method.
So why does this not return an undefined method error? There's no setter
or getter (attr_accessor) for find_by_name so it has no definition
anywhere. Second point is find_by_name! is not declared anywhere either
so we pass the name local variable into it, but it's not defined
anywhere. Anyone understand what's going on here? Thanks for response.
ActiveRecord (or Model, not sure which in Rails 3) has some dynamic
finder methods. If "name" is a field for that model then "find_by_name"
gets caught and converted into the appropriate method.
As far as I can tell the dynamic finders are still implemented in
ActiveRecord not ActiveModel. I'm not 100% sure of this however. Maybe
because other implementers of ActiveModel may need to do their own
custom behavior for this (if they want to behavior at all).