我在Report模型中定义了一个问题方法。我需要在定义动作节目时在报表的控制器中使用Report.problem的值。但我不断收到错误消息'未定义的方法问题'。我该如何解决这个问题?任何帮助都会很棒。
我有一个报告模型和一个包含所有问题列表的问题模型。
在报告模型中
def problems1
Problem.find(:all, :conditions => )
end
在报告控制器中,我需要类似
的内容def show
@report = Report.problems1
end
答案 0 :(得分:28)
您必须指定self.method_name
作为类方法
遵循以下模型方法规则
类方法
def self.problem
end
控制器中的
Report.problem
实例方法
def problem
end
控制器中的
report = Report.new
report.problem
答案 1 :(得分:0)
如果将方法定义为类方法
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