instance method
helper
Ruby on Rails 7.2.3
Since v3.0.20Signature
helper(*args, &block)
Includes the given modules in the template class.
Modules can be specified in different ways. All of the following calls include FooHelper:
# Module, recommended.
helper FooHelper
# String/symbol without the "helper" suffix, camel or snake case.
helper "Foo"
helper :Foo
helper "foo"
helper :foo
The last two assume that "foo".camelize returns “Foo”.
When strings or symbols are passed, the method finds the actual module object using String#constantize. Therefore, if the module has not been yet loaded, it has to be autoloadable, which is normally the case.
Namespaces are supported. The following calls include Foo::BarHelper:
# Module, recommended.
helper Foo::BarHelper
# String/symbol without the "helper" suffix, camel or snake case.
helper "Foo::Bar"
helper :"Foo::Bar"
helper "foo/bar"
helper :"foo/bar"
The last two assume that "foo/bar".camelize returns “Foo::Bar”.
The method accepts a block too. If present, the block is evaluated in the context of the controller helper module. This simple call makes the wadus method available in templates of the enclosing controller:
helper do
def wadus
"wadus"
end
end
Furthermore, all the above styles can be mixed together:
helper FooHelper, "woo", "bar/baz" do
def wadus
"wadus"
end
end
Parameters
-
argsrest -
blockblock
Source
# File actionpack/lib/abstract_controller/helpers.rb, line 198
def helper(*args, &block)
modules_for_helpers(args).each do |mod|
next if _helpers.include?(mod)
_helpers_for_modification.include(mod)
end
_helpers_for_modification.module_eval(&block) if block_given?
end
Defined in actionpack/lib/abstract_controller/helpers.rb line 198
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in AbstractController::Helpers::ClassMethods