Ruby on rails 访问管理控制器中的帮助器方法
所以我有以下几点Ruby on rails 访问管理控制器中的帮助器方法,ruby-on-rails,helper,Ruby On Rails,Helper,所以我有以下几点 # app/helpers/experts_helper.rb module ExpertsHelper .... def twitter_link(expert) link_to expert.twitter_url, class: 'social-link', target: '_blank' do content_tag(:i, '', class: 'fa fa-twitter expert-fa') end end def linkedin_link
# app/helpers/experts_helper.rb
module ExpertsHelper
....
def twitter_link(expert)
link_to expert.twitter_url, class: 'social-link', target: '_blank' do
content_tag(:i, '', class: 'fa fa-twitter expert-fa')
end
end
def linkedin_link(expert)
link_to expert.linkedin_url, class: 'social-link', target: '_blank' do
content_tag(:i, '', class: 'fa fa-linkedin expert-fa')
end
end
end
我可以在视图/experts/…
中的所有视图中访问这些方法,但不能在视图/admin/experts/…
中访问这些方法?谢谢
编辑1::更正了一些拼写错误,我还希望能够在class Admin::expertscocontroller助手方法,但它无法解决此问题
编辑2:我尝试了所有建议的解决方案,但仍然没有显示任何内容
我尝试了包含专家Shelper
和包含应用程序控制器.helpers.method
,使用后者我得到类型错误-错误参数类型数组(预期模块):
使用前者我没有得到任何错误,但我没有看到页面上显示任何内容,没有图标,没有照片,什么都没有。我甚至尝试在模块专家::AdminHelper end
中复制模块专家中的helper方法,但仍然没有任何结果。我相信您可以使用这些helper方法。在控制器中,您可以这样使用它们:
view_context.twitter_link(expert)
view_context.linkedin_link(expert)
有关更多详细信息和选项,请参阅。我希望您正在寻找此功能。在要访问帮助器方法的控制器中添加此行
include ApplicationHelper
admin/experts/…
视图是否使用不同的控制器?我想,如果默认情况下没有包括所有助手,您可能只需要在该控制器中包含ExpertsHelper
。首先,您的模块应该命名为ExpertsHelper
而不是Experts Helper
——后者实际上声明了Experts::Helper
@Max,只是修复了typo@TJR,到目前为止我所做的一切1。将config.action\u controller.include\u all\u helpers=true
添加到application.rb
2。在Admin::ExpertsController
中是否有手册include ExpertsHelper
我仍然看不到任何东西在类中使用include ExpertsHelper
将包括ExpertsHelper
模块中定义的方法。这是纯ruby,与rails没有任何关系。我猜错误在其他地方,或者您可能只是在尝试一些奇怪的事情,比如在render之外调用您的方法。如果您可以添加Admin::expertscocontroller
的相关部分,这可能会有所帮助—您已尝试执行这些操作来验证您的类是否具有方法和确切的错误消息。“当我尝试执行A时,收到错误消息B”。使用include ApplicationController.helpers.method
,我得到类型错误-错误的参数类型数组(预期模块):