Trivial rails model q


#1

hi, new to ruby/rails (where have i been)

trying to add a basic static method to a model class… anything besides
the normal:

def self.method_name(method_args)
if method_args == “foo”
result = true
else
result = false
end
result
end

which i should know? do i have to do something to have rails recognise
the addition of a class method like restart the server (which i have
tried to no avail).

sorry for such a basic question. i am trying to let go of php.

tom.


#2

How are you calling it? What I see there appears to be correct…

class Foo
def self.bar(opt)
if opt == “one”
return true
else
return false
end
end
end

puts Foo.bar(“one”)
puts Foo.bar(“two”)

$ ruby /tmp/foo.rb
true
false


#3

Michael G. wrote:

thanks - turns out it was irb not reloading classes. i just discovered

irb>> load ‘measure.rb’

will load any changes you have made to ‘measure.rb’ if you are using irb
to poke through your rails

thanks again,

tom


#4

On Mar 15, 3:52 am, Tom J. removed_email_address@domain.invalid wrote:

Michael G. wrote:

thanks - turns out it was irb not reloading classes. i just discovered

irb>> load ‘measure.rb’

will load any changes you have made to ‘measure.rb’ if you are using irb
to poke through your rails

There are some subtleties to this. It loads measure.rb again, so if
you have added a method or change a method then those changes will
take effect. It won’t however remove a method you deleted. Things like
validations etc will get applied a second time and so on.
If you want to do the same sort of reloading that rails does between
requests then (and this is specific to script/console) you can run
reload!

Fred