2010-07-09 7 views
7

Ho definito un metodo di problemi nel mio modello di report. Devo utilizzare il valore di Report.problem nel controller del report durante la definizione dello show azione. Ma continuo a ricevere il messaggio di errore "problema del metodo non definito". Come lo risolvo? Qualsiasi assistenza sarebbe grande.definire il metodo nel modello a cui è possibile accedere nel controller

Ho un modello di report e un modello di problema che contiene un elenco di tutti i problemi.

Nel modello di report

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

Nel controllore rapporti Ho bisogno di qualcosa di simile

def show 
    @report = Report.problems1 
end 
+0

si può aggiungere un po 'di codice di ciò che sta fallendo? Sia il codice del modello per il metodo che stai cercando di chiamare e il codice del controller che genera l'errore. –

risposta

26

è necessario assegnare self.method_name di utilizzare come metodo di classe

Seguire seguente regola per i metodi del modello

Classe Metodo

def self.problem 

end 

controller

Report.problem 

grado metodo

def problem 

end 

controller

report = Report.new 
report.problem 
+0

Grazie, lo terrò a mente – Prateek

0

Se si definisce il metodo come metodo di classe

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

Report.problem 
>1 

Ma se si definisce il metodo come oggetto

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

Questo metodo chiamata

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

Grazie che aiuta. Posso usare questo nel controller giusto? – Prateek

Problemi correlati