定期的に使用するRailsビューヘルパーのセットがあり、それらをgemにパッケージ化して、Gemfileに行を追加し、ビューからヘルパーにアクセスできるようにしたいと考えています。 。
BundlerとJewelerを使用する前にgemを作成しましたが、Railsビューヘルパーをgemに整理し、それらをRailsに含める方法がすべて明確ではありません。
Rails 3でこれを行う方法についてのポインタ、または最新のチュートリアルへのリンクをいただければ幸いです。
ありがとう
明確にするために:問題は「宝石を作成する方法」ではありません。その「ビューヘルパーをgemにパッケージ化して、Railsで使用できるようにする方法」
編集2:以下のポスターにも同意します。Railsエンジンは、この種の(できれば単純な)要件に対してはやり過ぎです。
私の意見では、完全な Engine はこのタスクにはやり過ぎです。代わりに、初期化時にヘルパーを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)
あなたがおそらく探しているのは engine です。エンジンは、Railsアプリケーションピースを含むgemです(実際、Railsアプリケーション自体がエンジンです。)