teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメントで書いた部分を追記

2020/03/30 02:18

投稿

ymneet
ymneet

スコア154

answer CHANGED
@@ -4,4 +4,27 @@
4
4
  の処理の後にsaveされているかの差です。
5
5
  createではされていませんが、updateではされています!
6
6
 
7
- ID発行してからファイル名を付けたいのであれば、もう一度save投げる感じでしょうか
7
+ ID発行してからファイル名を付けたいのであれば、もう一度save投げる感じでしょうか
8
+
9
+
10
+ ```controller
11
+ def create
12
+ @post = Post.new(
13
+ content: params[:content],
14
+ user_id: @current_user.id
15
+ )
16
+
17
+ if @post.save #DB保存して、@post.id発行
18
+ if params[:image]
19
+ @post.post_image_name = "#{@post.id}.jpg"
20
+ image = params[:image]
21
+ File.binwrite("public/post_images/#{@post.post_image_name}", image.read)
22
+ @post.save # ←追加 本来はsaveできなかった処理も考える
23
+ end
24
+ flash[:notice] = "投稿を作成しました"
25
+ redirect_to("/posts/index")
26
+ else
27
+ render("posts/new")
28
+ end
29
+ end
30
+ ```

1

追記

2020/03/30 02:18

投稿

ymneet
ymneet

スコア154

answer CHANGED
@@ -2,4 +2,6 @@
2
2
  @user.image_name = "#{@user.id}.jpg"
3
3
  ```
4
4
  の処理の後にsaveされているかの差です。
5
- createではされていませんが、updateではされています!
5
+ createではされていませんが、updateではされています!
6
+
7
+ ID発行してからファイル名を付けたいのであれば、もう一度save投げる感じでしょうか