私は自分自身の解決策を考え出しました。
libフォルダーにヘルパーファイルを作成し、それを呼び出しますassets_helper.rb
。Asset_helper内のコードは次のとおりです。
def partial(name, args = {}, dir = 'app/assets/templates')
require 'ostruct'
namespace = OpenStruct.new(args)
name += '.html'
[name + '.erb', name].each do |n|
n = File.join(dir, n)
next unless File.exist?(n)
tpl = ERB.new(File.new(n).read)
compiled = tpl.result(namespace.instance_eval { binding })
return compiled
end
end
次に、そのファイルを使用する各アセットファイルの先頭に含めます。ファイル内では、このように部分コマンドを使用できます。
<% require './lib/asset_helper.rb' %>
<!--- some HTML template --->
<%= partial('page/_partial', :var1 => true, :var2 => false) %>
<---- some other page --->
これは機能します。ただし、唯一の問題は、Rails3.1がアセットフォルダーにあるものをすべてキャッシュすることです。したがって、パーシャルを編集する場合は、そのファイルのキャッシュがクリアされるように、その中にあるルートファイルを更新する必要があります。