ARCHIVESDRIVE HB

オイラはホームベーカリー!

haml で link_to 記述時に onclick に asset_path を利用する方法

なろう系のタイトルみてーになっとる。

  • ロケ地

何がしたかったか

PDF を printJS で印刷させるリンク設定したかった。 ただし対象の PDF は asset:precompileMD5 digest が付与されている。

静的なファイルを指定する場合

#{RAILS_ROOT}/public/pdf/example.pdf のように、静的なファイルに対する場合はこうすれば動く。

= link_to '#', class: "pdf_insatsu", onclick: "printJS('/pdf/example.pdf')" do
  いんさつりんく

asset へのパスを設定する場合

#{RAILS_ROOT}/app/assets/asset_pdf/example.pdf に対しては、以下のように設定する。

= link_to '#', class: "pdf_insatsu", onclick: "printJS('#{asset_path 'asset_pdf/example.pdf'}')" do
  あせっとのいんさつりんく

haml の書き方 is わからない

中の人の勉強不足なんだけど、さっぱりわからなくて困ってる。ので、もう開き直って一度 erb で書いてから erb to haml 系のアレソレで変換するようにした。

した直後に以下を見つけて「やっぱ erb ならそうよな」となった。

ja.stackoverflow.com

そもそも

PDF を precompile の範囲内に入れるんじゃない、という話は「それはそう!」となる。