Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 具有相同方法名称的多个Rails帮助程序_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 具有相同方法名称的多个Rails帮助程序

Ruby on rails 具有相同方法名称的多个Rails帮助程序,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有两个不同的帮助器文件(照片\u帮助器和注释\u帮助器),其中有一个名为actions\u的方法用于。如何显式调用所需的帮助器方法?我知道我可以重命名其中一个,但我更愿意保持它们不变。我尝试了的photoHelper::actions\u,但似乎不起作用。将它们都作为类方法 module LoginsHelper def self.your_method_name "LoginsHelper" end end 及 那么 LoginsHelper.your_method_

我有两个不同的帮助器文件(照片\u帮助器和注释\u帮助器),其中有一个名为
actions\u的方法用于
。如何显式调用所需的帮助器方法?我知道我可以重命名其中一个,但我更愿意保持它们不变。我尝试了的
photoHelper::actions\u,但似乎不起作用。

将它们都作为
类方法

module LoginsHelper
  def self.your_method_name
    "LoginsHelper"
  end
end

那么

   LoginsHelper.your_method_name #Gives 'LoginsHelper'


在Rails 3中,所有辅助程序都始终包括在内(在Rails 3.1中,存在一个补丁,可以有选择地再次允许辅助程序)。幕后发生的事情:

class YourView
  include ApplicationHelper
  include UserHelper
  include ProjectHelper

  ...
end
因此,根据Rails包含它们的顺序,将使用任何用于
方法的
操作。您无法明确选择其中一个


如果您必须显式地为
调用
ProjectHelper.action\u,您还可以为
命名您的方法
project\u action\u-最简单的解决方案。

但是,这不允许访问任何其他“常规”ActionView::Helper方法,例如其中的link\u to、\u url、image\u标记。
   UsersHelper.your_method_name #Gives 'UsersHelper'
class YourView
  include ApplicationHelper
  include UserHelper
  include ProjectHelper

  ...
end