在rails中包含模块和类
我很难在/lib
中的文件中包含一些视图助手,比如说我有这个:
module TwitterPost include ActionView::Helpers::NumberHelper def update number_with_delimiter(1234567) end end
我明白了:
NoMethodError: undefined method `number_with_delimiter' for TwitterPost:Module
但是在我的控制台中,我能够只include ActionView::Helpers::NumberHelper
然后我就可以执行number_with_delimiter(1234567)
并且它可以正常工作。
为什么是这样? 我需要在一堆不同的模型中包含ActionView::Helpers::NumberHelper
,但我没有运气让它工作。
我想你可能会混淆模块的工作方式。
您需要将模块混合到一个类中,以使实例方法起作用。
module TwitterPost include ActionView::Helpers::NumberHelper def update number_with_delimiter(1234567) end end class Foo include TwitterPost end foo = Foo.new foo.update => "1,234,567"