这个由 Mason Jones 发布的解决方案对我有用。
在您的应用程序控制器中:
def self.tag_helper
TagHelper.instance
end
class TagHelper
include Singleton
include ActionView::Helpers::TagHelper
include ActionView::Helpers::AssetTagHelper
end
然后你可以做下面的事情,或者你需要的任何其他事情。
active_scaffold :mything do |config|
config.columns = [:name, :number, :active, :description]
config.update.link.label = tag_helper.image_tag('document_edit.png', :width => "30")
config.delete.link.label = tag_helper.image_tag('document_delete.png', :width => "30")
config.show.link.label = tag_helper.image_tag('document.png', :width => "30")
list.sorting = {:name => 'ASC'}
end
您正在 ApplicationController 中创建 TagHelper 的 Singelton 实例。这可以在您需要的任何地方为您提供帮助。他在他的帖子中解释了这一点。
此外,我使用它来扩展我的模型(创建一个更灵活的 image_tag 助手,如果没有图像,则返回默认图像——例如,person.small_image 是使用 tag_helper 的人模型的实例变量)。为此,我将相同的代码放在扩展 ActiveRecord::Base 的 Monkey Patch 初始化程序中。然后我从我的模型中调用 ActiveRecord::Base.tag_helper。这有点混乱,但我是 Rails 新手。可能有更清洁的方法。
希望有帮助。