当我从我的模型中调用某个方法时,我不断得到未定义的方法。
class User < ActiveRecord::Base
def update!
request_info
end
def request_info
return "hmmm"
end
end
request_info 里面的更新!未定义我也尝试将其设为 self.request_info 但这也不起作用
当我从我的模型中调用某个方法时,我不断得到未定义的方法。
class User < ActiveRecord::Base
def update!
request_info
end
def request_info
return "hmmm"
end
end
request_info 里面的更新!未定义我也尝试将其设为 self.request_info 但这也不起作用
在 Rails 中调用方法有两种方式。
class Foo
def self.bar
puts 'class method'
end
def baz
puts 'instance method'
end
end
Foo.bar # => "class method"
Foo.baz # => NoMethodError: undefined method ‘baz’ for Foo:Class
Foo.new.baz # => instance method
Foo.new.bar # => NoMethodError: undefined method ‘bar’ for #<Foo:0x1e820>
你也在做同样的事情吗?我从这里举了这个例子。请查看该页面以获取详细信息。
更新!对于方法名称来说是一个糟糕的选择: update 已经被定义为 ActiveRecord::Base 上的(私有)方法 - 这可能会导致混淆。
>> u = User.last
>> u.update
NoMethodError: private method `update' called for #<User:0x007ff862c9cc48>
但除此之外,当我在控制台中尝试时,您的代码工作得非常好:
>> u = User.last
>> u.update!
=> "hmmm"