所以我有以下
# 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
我可以在views/experts/...
内的所有观看中访问这些方法,但不能在views/admin/experts/...
内的那些观看中访问这些方法?如何访问这些方法?感谢
编辑1::更正了一些拼写错误,我也希望能够在helper methods
上使用这些class Admin::ExpertsController < AdminController (content omitted for brevity) end
我在控制器中使用了include ExpertsHelper
,但它没有解决它
编辑2:我已尝试过所有提议的解决方案,但仍然无法显示任何内容。
我已经尝试了include ExpertsHelper
和include ApplicationController.helpers.method
,后者我得到了TypeError - wrong argument type Array (expected Module):
,而前者我没有遇到任何错误,但我没有尝试过。{}看到页面上显示的任何内容,没有图标,没有照片,没有。我甚至尝试在module Experts
内的module Experts::AdminHelper end
内复制帮助方法,但仍然没有。
答案 0 :(得分:1)
我希望你在寻找这个。在要访问辅助方法的控制器中添加此行。
include ApplicationHelper
答案 1 :(得分:0)
我相信您可以使用ActionView::Rendering#view_context来使用这些辅助方法。在您的控制器中,您可以像这样使用它们:
view_context.twitter_link(expert)
view_context.linkedin_link(expert)
有关详细信息和选项,请参阅this other SO question。