2010-07-09 9 views
7

He definido un método de problemas en mi modelo de informe. Necesito usar el valor de Report.problem en el controlador del informe mientras defino el show de acción. Pero sigo recibiendo el mensaje de error 'problema de método indefinido'. ¿Cómo puedo solucionar esto? Cualquier ayuda sería grata.definir el método en el modelo que se puede acceder en el controlador

Tengo un modelo de informe y un modelo de problema que contiene una lista de todos los problemas.

En el modelo de informe

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

En el controlador de informes que necesito algo así como

def show 
    @report = Report.problems1 
end 
+0

se puede añadir algo de código de lo que está fallando? Ambos modelos de código para el método que está tratando de llamar y el código del controlador que genera el error. –

Respuesta

26

tiene que asignar self.method_name para su uso como un método de clase

Siga siguiente regla para los métodos Modelo

Clase Método

def self.problem 

end 

en el controlador

Report.problem 

Instancia método

def problem 

end 

en el controlador

report = Report.new 
report.problem 
+0

Gracias, lo tendré en cuenta – Prateek

0

Si se define el método como método de clase

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

Report.problem 
>1 

Pero si se define el método como objeto

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

Esta llamada al método

report = Report.new 
report.problem 
>1 
+0

Gracias que ayuda. Puedo usar esto en el controlador ¿no? – Prateek

Cuestiones relacionadas