Ruby on Rails

トップ > チップス > Ruby on Rails
2014-09-07, rails ruby

send_dataの結果をブラウザで表示

任意の文字列やデータ(画像など)をコントローラから直接返したい場合、send_dataというメソッドを使用します(ダウンロードさせたい場合は、disposition=attachmentとして、ファイル名などを指定します)。

send_data foo, type: 'text/plain', disposition: 'inline'

上記で出力はOKなのですが、アプリ内からリンクするとどうも不自然な動作をします。「戻る」ボタンを押してもページが遷移しなかったり、なんとも不可解だったのですが、どうやらこれはturbolinkというRailsの機構が悪さをしている模様です。ということで、リンクを貼る際に以下のようにパラメタを設定してあげれば、普通に動作するようになります。

link_to 'Foo', foo_path, data: { no_turbolink: true }

参考URL

この記事は役に立ちましたか?