Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 铁路3&x2013;如何使自定义辅助对象可用于控制器和视图_Ruby On Rails - Fatal编程技术网

Ruby on rails 铁路3&x2013;如何使自定义辅助对象可用于控制器和视图

Ruby on rails 铁路3&x2013;如何使自定义辅助对象可用于控制器和视图,ruby-on-rails,Ruby On Rails,给定app/helpers/url_helper.rb中的自定义助手文件 module UrlHelper ... end 如何使其在所有控制器和所有视图中均可访问?将其放置在ApplicationController(非帮助器)中,并声明帮助器\u方法:方法\u名称或。。。将它们包含到控制器中 class ApplicationController < ActionController::Base include UrlHelper end class Application

给定app/helpers/url_helper.rb中的自定义助手文件

module UrlHelper
  ...
end

如何使其在所有控制器和所有视图中均可访问?

将其放置在ApplicationController(非帮助器)中,并声明
帮助器\u方法:方法\u名称

或。。。将它们包含到控制器中

class ApplicationController < ActionController::Base
  include UrlHelper
end
class ApplicationController
您的意思是,我没有为全局帮助程序使用单独的文件,而是将它们放在应用程序控制器上?您可以在模块中定义它们,并将它们包含到ApplicationController中。我想说的是,助手中包含的方法不能在控制器中使用;但是,可以使用
helper\u method
将控制器中的方法(或控制器中包含的模块中的方法)提供给视图和帮助者。这在Rails 4中适用吗?因为它对我不起作用。“包含”确实有效,但视图无权访问方法。@Michael是的,它有效。它是简单的
ruby
,无论是
框架
还是它的
版本
。对实例方法使用
include
,对类方法使用
extend