programing

Rails 뷰 헬퍼를 gem으로 추출하려면 어떻게하나요?

javaba 2021. 1. 14. 23:03
반응형

Rails 뷰 헬퍼를 gem으로 추출하려면 어떻게하나요?


정기적으로 사용하는 rails view 헬퍼 세트가 있으며, Gemfile에 줄을 추가하고 헬퍼를 내 뷰에서 액세스 할 수 있도록 gem으로 패키징하고 싶습니다.

Bundler와 Jeweler를 사용하기 전에 gem을 만들었지 만 Rails 뷰 헬퍼를 gem에 구성하고 레일에 포함시키는 방법에 대해 잘 모르겠습니다.

Rails 3에서이 작업을 수행하는 방법에 대한 최신 튜토리얼 링크 나 포인터를 보내 주시면 감사하겠습니다.

감사

명확히하기 위해 : 질문은 "보석을 만드는 방법"에 관한 것이 아닙니다. "Gem에 뷰 헬퍼를 패키징하여 Rails에서 사용할 수 있도록하는 방법"

편집 2 : 저도 아래의 포스터에 동의합니다. 레일스 엔진은 이런 종류의 (희망적으로 간단하게) 요구 사항에 비해 너무 과잉입니다.


제 생각에는 완전한 엔진 은이 작업에 과잉입니다. 대신 ActionView :: Base가 초기화 될 때 도우미를 포함 하는 Railtie만들 수 있습니다.

# lib/my_gem/view_helpers.rb
module MyGem
  module ViewHelpers
    def pre(text)
      content_tag :pre, text
    end

    def another_helper
      # super secret stuff
    end
  end
end

# lib/my_gem/railtie.rb
require 'my_gem/view_helpers'
module MyGem
  class Railtie < Rails::Railtie
    initializer "my_gem.view_helpers" do
      ActionView::Base.send :include, ViewHelpers
    end
  end
end

# lib/my_gem.rb
require 'my_gem/railtie' if defined?(Rails)

또한 Rails3 버전에만 도우미를 포함하려면 다음을 사용할 수 있습니다.

# lib/my_gem.rb
require 'my_gem/railtie' if defined?(Rails::Railtie)

당신이 아마 찾고있는 것은 엔진 이다. 엔진은 레일 응용 프로그램 조각을 포함하는 보석입니다 (사실 레일 응용 프로그램 자체가 엔진입니다).

참조 URL : https://stackoverflow.com/questions/5791211/how-do-i-extract-rails-view-helpers-into-a-gem

반응형