0
我有我的User
类中定义这个方法:为什么我的`User`类定义的方法不断返回未定义的方法?
def two_way_exists_with?(user1, user2)
return true if number_of_memberships(user1, user2) == 2
end
当我试图从我的控制台称它为我不断收到undefined method
错误。
[3] pry(main)> two_way_exists?(u1, u2)
NoMethodError: undefined method `two_way_exists?' for main:Object
from (pry):3:in `__pry__'
[4] pry(main)> u1.two_way_exists?(u1, u2)
NoMethodError: undefined method `two_way_exists?' for #<User:0x007fe9e7eda228>
from /[email protected]/gems/activemodel-4.1.12/lib/active_model/attribute_methods.rb:435:in `method_missing'
[5] pry(main)> User.two_way_exists?(u1, u2)
NoMethodError: undefined method `two_way_exists?' for #<Class:0x007fe9eaabf0a0>
from /[email protected]/gems/activerecord-4.1.12/lib/active_record/dynamic_matchers.rb:26:in `method_missing'
如何调用此方法?
您定义了一个名为'two_way_exists_with?'的方法,并尝试调用一个名为'two_way_exists?'的方法。注意名字中缺少'_with'。 –
zomg ....感谢您的提示。那么称呼它的正确方法是什么?在'u1'对象上,'User'类还是两者都不? – marcamillion
没有看到你确切地定义了方法的地方,你可能已经定义了一个实例方法。这些都可以在你的课堂上使用,例如可能在'u1'上。一般来说,你应该得到一本Ruby的入门书,并学习一些关于方法范围的知识。这是您一直需要的超级基本功能! –