我在helpers
中使用Rails
时遇到问题。
请注意以下代码。
module A
module B
extend self
def method
"method at module B of A"
end
end
end
module C
extend self
include A
end
class ClassA
extend C
class << self
def method
B.method
end
end
end
p ClassA.method #=> "method at module B of A"
它适用于Ruby,但不能用作Rails helper
。
以下是我的文件。
/lib/a/b.rb
module A
module B
def method
"It works"
end
end
end
app/helpers/a_helper.rb
require 'a/b'
module AHelper
include A
end
app/views/a/_form.haml
B.method
当我在B.method
内拨打_form.haml
时,会出现错误:uninitialized constant ActionView::CompiledTemplates::B
如果在config.action_controller.include_all_helpers = false
中设置config/application.rb
,并在我的extend AHelper
中包含controller
,也无效。