我指的是您在 app/helpers
中创建的模块。它们是否可用于:
最佳答案
在 Rails 5 中,所有 Helper 都可用于所有 Views 和所有 Controllers,而没有其他任何东西。
http://api.rubyonrails.org/classes/ActionController/Helpers.html
在 View 中,您可以直接访问助手:
module UserHelper
def fullname(user)
...
end
end
# app/views/items/show.html.erb
...
User: <%= fullname(@user) %>
...
在 Controller 中,您需要 #helpers
方法来访问它们:# app/controllers/items_controller.rb
class ItemsController
def show
...
@user_fullname = helpers.fullname(@user)
...
end
end
您仍然可以通过 include
使用其他类中的辅助模块。# some/other/klass.rb
class Klass
include UserHelper
end
旧的行为是所有的助手都包含在所有 View 中,并且只有每个助手都包含在匹配的 Controller 中,例如。 UserHelper
只会包含在 UserController
中。要返回此行为,您可以在
config.action_controller.include_all_helpers = false
文件中设置 config/application.rb
。关于ruby-on-rails - Rails 助手在哪里可用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43431955/