twitterブートストラップを使用してアプリを作成しています。私はFontAwesomeを使用して、さまざまな場所、多くの場合リンクにアイコンを追加しています。これまで、グローバルヘルパーを使用してきました。簡略化されたバージョンは次のとおりです。
# app/helpers/link_to_with_icon.rb
def link_to_with_icon(text, path, options={})
options = options.clone
icon = options.delete(:icon)
text = "<i class='#{icon}'></i> #{text}" if icon.present?
link_to(text, path, options)
end
これは機能しましたが、新しいリンクにアイコンを追加する必要があるたびに変更link_toすることを覚えておく必要がありました(アプリは新しいので、常に流動的です)。link_to_with_iconそこで、完全に使用をやめ、 (互換性があるため)にlink_to置き換えました。link_to_with_icon
しかし、私はもう使用していないので、そもそもlink_to変更したほうがよいことに気づきました。link_to確かに、オプションを理解させるために、libフォルダーにモンキーパッチを追加することができ:iconます。
# lib/extensions/url_helper_extensions.rb
module ActionView
module Helpers
module UrlHelper
# do some magic here
end
end
end
数年前、私はこれと同じようなことをしたことがあります。当時、alias_method_chainヘルパーはその仕事に適したツールでした。Rails 3.xでは、モジュールと継承を優先して非推奨になっているようです。
しかし、そのページの例を正しく理解している場合は、link_toある種のBaseモジュールによって提供されるメソッドが必要になります。そうしないと、「Pre-Extension」を追加できません。
したがって、私の質問:モジュールを使用してlink_toを拡張できますか?または私は使用する必要がありますalias_method_chainか?
特に、:iconオプションの実用的な実装をいただければ幸いです。