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

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

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

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

Q&A

解決済

1回答

1440閲覧

Rails4.2 iPhoneのブラウザから更新すると全てのアイテムが更新されてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2015/06/21 05:13

編集2015/06/23 11:20

herokuにアプリをアップしました。
macbookのsafariからテストした時は問題なかったのですが、iPhoneからsafariとchromeテストした際に下記の問題が起きました。

Item modelでitemをcreateするとユーザが過去にcreateした全てのアイテムの画像(picture_1のみ)が更新されてしまいます。
新規でcreateしたitem自体はpicture_1とpicture_2が両方ともpicture_2の画像にに差し代わってしまいます。

原因が全くわかりません

lang

1def create 2 @item = current_user.items.build(item_params) 3 respond_to do |format| 4 if @item.save 5 format.html { redirect_to items_continue_url, notice: 'アイテムを登録しました' } 6 format.json { render :show, status: :created, location: @item } 7 else 8 9 format.html { render :new } 10 format.json { render json: @item.errors, status: :unprocessable_entity } 11 end 12 end 13 end

PictureUploaderを下記に変更

lang

1 def filename 2 "#{secure_token}.png" if original_filename.present? 3 end 4 5 protected 6 def secure_token 7 var = :"@#{mounted_as}_secure_token" 8 model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid) 9 end

以前のコード

lang

1 def filename 2 "#{Time.now.strftime('%Y%m%d%H%M%S')}.jpg" 3 end

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

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

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

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

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

guest

回答1

0

ベストアンサー

ログを見る限り、itemテーブルの別のレコードが更新されている様子は無いようですね。

画像ファイルだけが他のitemの分も更新されるということは、画像ファイル保存のロジックのところに問題があり、同名のファイルで上書きされてしまっているという可能性は無いでしょうか?
(たとえば、original_filenameそのままのファイル名で保存しているので、全部同じファイル名になっているとか)

投稿2015/06/23 05:23

rifuch

総合スコア1901

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

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

退会済みユーザー

退会済みユーザー

2015/06/23 11:21

ありがとうございます。ご指摘いただいた点が問題でした。元々のコードでなぜバグになったのかはわかりませんが、新たに書き直したところ問題なく動くことを確認しました。 睡眠をありがとう!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問