質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

3089閲覧

Rails text_areaに画像を挿入、保存する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/03/19 13:29

編集2016/03/20 13:40

###前提・実現したいこと
Ruby on Railsでアプリを作成しています。
teratailの質問する際の入力補助ボタンのように、フォームにマークダウンを入力する際に
画像を挿入する機能を実装したいと思っています。

通常の画像アップロードの方法(Form_forでfile_fieldを使う方法)はRailsチュートリアルやいろいろな
サイトでやり方を見かけるのですが、taratailのような画像のファイルパスを取得して、
更新時に画像も一緒にアップロードするようなやり方は見たことがないです。

僕の想定では、このような動作をしているのかなと思っています。
0. ピクチャーボタンを押す。
0. ファイル選択画面が起動し、ユーザーがファイルを選択する。
0. 選択されたファイルを一旦キャッシュ?ローカルに保存し、そのファイル名をinputフィールドに文字列として挿入。
0. Submitボタンが押された時に、ローカルに保存されていた画像の情報がサーバーに保存される。

この上記の手順の3、4のあたりの処理をどのように書けばいいかが分からない状態です。

もし上記のやり方あるいはヒント、あるいは便利なgemなどご存知の方がいらっしゃいましたら教えていただけますでしょうか。よろしくお願いします。

###ピクチャーボタンを押すと挿入されるこの機能です。
この機能を実装したいです。

###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.3.0
rails 4.2.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

初めまして

これは予想でしかありませんが、
質問者様がおっしゃっている手順の3.4が違うかもしれません

1.ピクチャーボタンを押す。
2.ファイル選択画面が起動し、ユーザーがファイルを選択する。
3.選択されたファイルを一旦キャッシュ?ローカルに保存し、そのファイル名をinputフィールドに文字列として挿入。
4.Submitボタンが押された時に、ローカルに保存されていた画像の情報がサーバーに保存される。

3に関してですが、実際に画像を選択した瞬間にteratail様側のサーバに画像はすでに上がっているように思えます。
実際に
http://teratail.com/uploads/contributed_images/67c5bb29839fe3fa2e8f5d5bc991516a.jpeg
は僕が画像を選択して挿入後に左側に挿入された画像のurlです。(ネットで適当に取ってきた画像です)

なので、画像を選択した瞬間にサーバに上がっているように思えます。
また、quiitaなどもアップした瞬間にサーバに上がっているように思えるので大体そうではないかなぁと。
それで、どこかでそれの帳尻合わせをしていると思います。(使用されていない画像を削除する的な)

ちなみに仮にローカルで処理するとしたら結構重くなります。
普通のやり方だと、imageをdata uri変換してプレビューしたりしますが重すぎてやばいです。。。

gemに関しては詳しくないので割愛します!
頑張ってください!

投稿2016/03/22 02:39

MasakazuFukami

総合スコア1869

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/22 02:43

圧倒的感謝です。 もう少し頑張ってみたいと思います。 できたらベストアンサーボタンさせていただだきたいと思います∑(。・Д・。)
MasakazuFukami

2016/03/22 02:44

圧倒的感謝に笑ってしまいました(笑) 頑張ってください!ざわ...ざわ...
退会済みユーザー

退会済みユーザー

2016/03/31 04:58

遅くなってしまいすみません。 なんとかできたような感じです! ざわざわありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問