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
オプションの実用的な実装をいただければ幸いです。