2016-07-02 27 views
1

Railsでファイルを提供する最も簡単な方法は何ですか?最も簡単な方法 - Ruby on Rails

これはつまり、http://myserver.com/assets/arbitraryfile.arbitraryformatに行き、arbitraryfile.arbitraryformatをブラウザにロードして、ブラウザがダウンロードするかどうかを決定させるかどうかを決定させます。 (特に、サーバーから* .jsファイルを呼び出すブックマークレットを作成し、* .cssファイルをロードし、同じ* .ttyファイルをダウンロードします)

assetsリソースがassets#showアクションにルーティングされていますが、私はshowのコード方法については全くわかりません。

答えて

2

データをブラウザにストリームし、必要な処理を実行します。あなたが欲しいものを得るために、2つのレールのいずれかの方法を使用することができます。

a)は

foo_data = "This is my data" 
send_data(foo_data, filename: "foo_file.txt") 

BをSEND_DATA)パスを使用することができますsend_file()

send_file("my_app/assets/public/pdf/my_pdf.pdf", type: "application/pdf") 

をチェックofficial doc

+0

Hm。約90%がそこにいると思う。最後のビット - ルートはどこですか?それはちょうど '(appname)'、 'app'と' public'とそれ以外のものを含むフォルダですか?それは 'app \ assets \'ですか?ファイル名を指定しただけでは自動的に 'assets'フォルダが検索されますが、ここではそれが当てはまるかどうかはわかりません。 – linkhyrule5

+0

Umm ...これは単なるURIの例です。あなたは、あなたが提供しようとしているファイルのパスを使用します。私が書いた場所にファイルを置く必要はありません。私はちょうど現実的な見た目のパスを使用すると、 'foo/bar/baz/quz/my_pdf.pdf'のようなものよりも具体的になると思っていました。その例の 'my_app'はアプリケーションルートであり、(ファイルシステムの)実際のルートではありません。また、 'Rails.root'を使ってアプリケーションディレクトリを取得することもできるので、その場所からの相対パスを追加することができます。 – MarsAtomic

+0

ええ、私は知っている、それは私が意味するものではありません。 *は*アプリケーションのルートです*ここに質問はありますか?私が 'assets'フォルダや実際のルートフォルダ(' myapp'という名前のフォルダ)から探し始めるのかどうか分からないほどレールは直感的ではありません – linkhyrule5

関連する問題