アプリでリソース(ページ)にアクセスするためのURLを生成している場合は、リソースの場所をRESTfullyに指定できます(/pages/2.jpg、/pages/3.vcard、/ pages / 4(デフォルトはhtml))。 )page_url(@page、:format =>'jpg')などの組み込みのRailsビューヘルパーを使用します。次に、Railsでrepond_toを使用してリソースを配信するだけです。
respond_to do |format|
format.html { # default rendering in show.erb.html }
format.jpg { # perhaps send_file or send_data call }
format.vcard { # send attachment }
end
詳細については、 Railsルーティングガイドを確認してください。.vcardのリクエストを処理するようにRailsを設定する必要があります。この要点を参照してください。
リンク生成(リソースへの外部参照)を制御せず、/ pages / 2(jpeg)のようなリクエストを受け取ることを期待している場合は、page_type列を使用してsend_fileで条件付きでレンダリングすることにフォールバックする必要があります、send_data、またはその他のRailsレンダリングメソッド。上記のrespond_toの各ブロックに作成したロジック(メソッド)を再利用して、コントローラーに「respond_to_html」、「respond_to_jpg」、「respond_to_vcard」メソッドを含めることを検討してください。