Это решение, опубликованное Мэйсоном Джонсом, работает для меня.
В вашем контроллере приложений:
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
Вы создаете экземпляр Singelton TagHelper в своем ApplicationController. Это дает вам помощников везде, где они вам нужны. Он объясняет это в своем посте.
Кроме того, я использую это для расширения своих моделей (для создания более гибкого помощника image_tag, который возвращает изображение по умолчанию, если изображение отсутствует — например, person.small_image — это переменная экземпляра модели человека, которая использует tag_helper). Для этого я поместил тот же код в инициализатор Monkey Patch, который расширяет ActiveRecord::Base. Затем я вызываю ActiveRecord::Base.tag_helper из своих моделей. Это немного беспорядочно, но я новичок в рельсах. Вероятно, есть более чистый способ.
Надеюсь, это поможет.
person
NAD
schedule
11.03.2011