Filip Koczorowski wrote:
I extended one of my model classes with a method, like this:
class Poll < ActiveRecord::Base
has_many :poll_answers
def find_active_for # [...] method body end
end
However, when I tried this in the controller class:
def show @classroom = Classroom.find params[:id] @lesson_groups = LessonGroup.find :all, :conditions => [ 'classroom_id=?', @classroom.id ], :include => :lessons
@poll = Poll.find_active_for # my model method end
...I got a method_missing:
NoMethodError (undefined method `find_active_for' for Poll:Class): /vendor/rails/activerecord/lib/active_record/base.rb:1129:in `method_missing' /app/controllers/classroom_controller.rb:9:in `show'
How is that possible? The class (Poll) gets loaded - I've inserted debug "logger.info" in poll.rb before and after class definition and they show up in the logs.
And by the way, I tried accessing this method in a unit test as well, with the same results.
Put a "self." at the front of the method name:
def self.find_active_for # [...] method body end