определить метод в модели, который может быть доступен в контроллере - PullRequest
8 голосов
/ 09 июля 2010

Я определил метод проблем в моей модели отчета.Мне нужно использовать значение Report.problem в контроллере отчета при определении действия шоу.Но я продолжаю получать сообщение об ошибке «неопределенная проблема метода».Как мне решить это?Любая помощь будет очень полезна.

У меня есть модель отчета и модель проблемы, которая содержит список всех проблем.

В модели отчета

def problems1
Problem.find(:all, :conditions => )
end

В отчетахконтроллер мне нужно что-то вроде

def show
  @report = Report.problems1
end

Ответы [ 2 ]

28 голосов
/ 09 июля 2010

Вы должны назначить self.method_name для использования в качестве метода класса

Следуйте следующему правилу для методов модели

Метод класса

def self.problem

end

в контроллере

Report.problem

Метод экземпляра

def problem

end

в контроллере

report =  Report.new
report.problem
0 голосов
/ 09 июля 2010

Если вы определяете метод как метод класса

class Report < ActiveRecord :: Base
 def Report.problem
  puts 1
 end
end

Report.problem
>1

Но если вы определяете метод как объект

class Report < ActiveRecord :: Base
 def problem
  puts 1
 end
end

Этот вызов метода

report = Report.new
report.problem
>1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...