module BlockLinkTo def self.included(base) base.class_eval do alias_method_chain :link_to, :block end end def link_to_with_block(*args, &block) return link_to_without_block(*args) unless block text = capture(&block) concat(link_to_without_block(*[text] + args), block.binding) end end ActionView::Helpers::UrlHelper.module_eval do include BlockLinkTo end