首页 > 解决方案 > 如何在 ruby​​ gem 中包含 ActionView::Helpers::TagHelper ...?使用 content_tag

问题描述

我需要在我的 gem 中使用 content_tag。如何在 gem 中包含 ActionView::Helpers::TagHelper。

lib/fun_emoji.rb
require 'fun_emoji/version'
require 'json'

module FunEmoji
   class Index

     def initialize(list)

       list.each do |key, value|
          content_tag(:span, value)
        end
     end

   end
end

标签: ruby-on-railsrubyrubygems

解决方案


真的很简单,只是:

require 'action_view'
module FunEmoji
  class Index
    include ActionView::Helpers::TagHelper
    # ... initialize method
  end
end

但是,这将无济于事:

list.each do |key, value|
  content_tag(:span, value)
end

content_tag返回一个字符串,所以你需要对结果做一些事情(记住each忽略其块的返回值):

tags = list.map { |k,v| content_tag :span, v }

推荐阅读