我不能这样做:
class Hardware
before_filter
def before_filter
puts "ge"
end
end
当我实例化它时,before_filter是未定义的方法或变量
hd = Hardware.new
因为我见过其他人之前在一个类中放了一个方法名。只是想知道它是如何工作的。感谢
答案 0 :(得分:7)
您的代码存在两个问题:
这两个显然都行不通。
这样可行:
class Hardware
def self.before_filter
puts "ge"
end
before_filter
end
答案 1 :(得分:5)
before_filter
是一个ActiveRecord类方法(请参阅here),因此只有在模型继承自ActiveRecord::Base
(或子类)时才可用。你能更具体地了解你想要做什么吗?
您可能只是在寻找:
class Hardware
def initialize
super
before_filter
end
protected
def before_filter
# ...
end
end
答案 2 :(得分:3)
要么改变
def before_filter
到
def self.before_filter
并在定义
之后调用它OR
评论before_filter
class Hardware
def before_filter
puts "ge"
end
end
并像
一样打电话hd = Hardware.new
hd.before_filter