質問編集履歴

6

コードの修正

2020/01/18 07:11

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,99 +4,7 @@
4
4
 
5
5
  railsでレビューサイトの個人アプリを作っています。
6
6
 
7
- レビュー投稿機能を実装中に以下のエラーメッセージが発生しました。
8
-
9
-
10
-
11
- ### 発生している問題・エラーメッセージ
12
-
13
- レビューに作品ごとのidを入れたい
7
+ レビューに作品ごとのidを入れたいです。
14
-
15
- 作品をpostsテーブルという名前で作成。レビューをreviewsテーブルという名前で作成。
16
-
17
- reviewsテーブルにpost_idというカラムを作りました。ここに作品ごとの(post.id)idを入れたいのですが作品ごとのidが入らずカラムに全部0が入ります。
18
-
19
- ```
20
-
21
- エラーメッセージ
22
-
23
- ```
24
-
25
-
26
-
27
- ### 該当のソースコード
28
-
29
- ルーティング
30
-
31
- ```ここに言語を入力
32
-
33
- Rails.application.routes.draw do
34
-
35
- devise_for :users
36
-
37
- get '/' => 'posts#index'
38
-
39
- get 'posts/new' => 'posts#new'
40
-
41
- post 'posts/create' => 'posts#create'
42
-
43
- get 'posts/:id' => 'posts#show'
44
-
45
- post 'posts/:id' => 'posts#show'
46
-
47
- post 'reviews/create' => 'reviews#create'
48
-
49
- get 'reviews/new' => 'reviews#new'
50
-
51
- resources :posts, only: :show do
52
-
53
- resources :reviews, only: [:new, :create]
54
-
55
- collection do
56
-
57
- get 'search'
58
-
59
- end
60
-
61
- end
62
-
63
- end
64
-
65
- ```
66
-
67
-
68
-
69
- reviewsコントローラー
70
-
71
- ```ここに言語を入力
72
-
73
- def new
74
-
75
- @post = Post.find(params[:post_id])
76
-
77
- end
78
-
79
- def create
80
-
81
- @reviews = Review.new(nickname: params[:nickname],rate: params[:rate],review: params[:review],post_id: params[:post_id])
82
-
83
- if @reviews.save!
84
-
85
- redirect_to('/')
86
-
87
- end
88
-
89
- end
90
-
91
- ```
92
-
93
- ### 前提・実現したいこと
94
-
95
-
96
-
97
- railsでレビューサイトの個人アプリを作っています。
98
-
99
- レビュー投稿機能を実装中に以下のエラーメッセージが発生しました。
100
8
 
101
9
 
102
10
 
@@ -249,25 +157,3 @@
249
157
  をかくと送信ができずMySQLにデータが入らないので
250
158
 
251
159
  ここにより詳細な情報を記載してください。
252
-
253
-
254
-
255
- ### 試したこと
256
-
257
-
258
-
259
- ここに問題に対して試したことを記載してください。
260
-
261
-
262
-
263
- ### 補足情報(FW/ツールのバージョンなど)
264
-
265
- modelには特に触れていません。
266
-
267
- post.rbにhas_many :reviews
268
-
269
- review.rbにbelongs_to :post
270
-
271
- をかくと送信ができずMySQLにデータが入らないので
272
-
273
- ここにより詳細な情報を記載してください。

5

コードの修正

2020/01/18 07:10

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -90,6 +90,124 @@
90
90
 
91
91
  ```
92
92
 
93
+ ### 前提・実現したいこと
94
+
95
+
96
+
97
+ railsでレビューサイトの個人アプリを作っています。
98
+
99
+ レビュー投稿機能を実装中に以下のエラーメッセージが発生しました。
100
+
101
+
102
+
103
+ ### 発生している問題・エラーメッセージ
104
+
105
+ レビューに作品ごとのidを入れたい
106
+
107
+ 作品をpostsテーブルという名前で作成。レビューをreviewsテーブルという名前で作成。
108
+
109
+ reviewsテーブルにpost_idというカラムを作りました。ここに作品ごとの(post.id)idを入れたいのですが作品ごとのidが入らずカラムに全部0が入ります。
110
+
111
+ ```
112
+
113
+ エラーメッセージ
114
+
115
+ ```
116
+
117
+
118
+
119
+ ### 該当のソースコード
120
+
121
+ ルーティング
122
+
123
+ ```ここに言語を入力
124
+
125
+ Rails.application.routes.draw do
126
+
127
+ devise_for :users
128
+
129
+ get '/' => 'posts#index'
130
+
131
+ get 'posts/new' => 'posts#new'
132
+
133
+ post 'posts/create' => 'posts#create'
134
+
135
+ get 'posts/:id' => 'posts#show'
136
+
137
+ post 'posts/:id' => 'posts#show'
138
+
139
+ post 'reviews/create' => 'reviews#create'
140
+
141
+ get 'reviews/new' => 'reviews#new'
142
+
143
+ resources :posts, only: :show do
144
+
145
+ resources :reviews, only: [:new, :create]
146
+
147
+ collection do
148
+
149
+ get 'search'
150
+
151
+ end
152
+
153
+ end
154
+
155
+ end
156
+
157
+ ```
158
+
159
+
160
+
161
+ reviewsコントローラー
162
+
163
+ ```ここに言語を入力
164
+
165
+ def new
166
+
167
+ @post = Post.find(params[:post_id])
168
+
169
+ end
170
+
171
+ def create
172
+
173
+ @reviews = Review.new(nickname: params[:nickname],rate: params[:rate],review: params[:review],post_id: params[:post_id])
174
+
175
+ if @reviews.save!
176
+
177
+ redirect_to('/')
178
+
179
+ end
180
+
181
+ end
182
+
183
+ ```
184
+
185
+ postのshow.html.erb(作品を表示しているところ。ここからreviewのnew.html.erbに飛ぶ)
186
+
187
+ ```ここに言語を入力
188
+
189
+ <div class="show_main">
190
+
191
+ <h1 class="show_title"><%= @post.name %></h1>
192
+
193
+ <div class="content_post" style="background-image: url(<%= @post.image %>);">
194
+
195
+ </div>
196
+
197
+ <a href="/reviews/new?post_id=<%= @post.id %> "class="review_link">この作品をレビューする</a>
198
+
199
+ <% @reviews.each do |review| %>
200
+
201
+ <div class="review"><%= review.nickname %></div>
202
+
203
+ <div class="review"><%= review.review %></div>
204
+
205
+ <%end%>
206
+
207
+ ```
208
+
209
+
210
+
93
211
  reviewのnew.html.erb(レビューの投稿画面)
94
212
 
95
213
  ```ここに言語を入力
@@ -131,3 +249,25 @@
131
249
  をかくと送信ができずMySQLにデータが入らないので
132
250
 
133
251
  ここにより詳細な情報を記載してください。
252
+
253
+
254
+
255
+ ### 試したこと
256
+
257
+
258
+
259
+ ここに問題に対して試したことを記載してください。
260
+
261
+
262
+
263
+ ### 補足情報(FW/ツールのバージョンなど)
264
+
265
+ modelには特に触れていません。
266
+
267
+ post.rbにhas_many :reviews
268
+
269
+ review.rbにbelongs_to :post
270
+
271
+ をかくと送信ができずMySQLにデータが入らないので
272
+
273
+ ここにより詳細な情報を記載してください。

4

コードの修正

2020/01/18 07:07

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  @reviews = Review.new(nickname: params[:nickname],rate: params[:rate],review: params[:review],post_id: params[:post_id])
82
82
 
83
- if @reviews.save
83
+ if @reviews.save!
84
84
 
85
85
  redirect_to('/')
86
86
 

3

コードの修正

2020/01/18 06:40

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -118,10 +118,16 @@
118
118
 
119
119
  ここに問題に対して試したことを記載してください。
120
120
 
121
- アソシエーションを組んだりしたのですがうまく行きませんでした。
121
+
122
122
 
123
123
  ### 補足情報(FW/ツールのバージョンなど)
124
124
 
125
+ modelには特に触れていません。
125
126
 
127
+ post.rbにhas_many :reviews
128
+
129
+ review.rbにbelongs_to :post
130
+
131
+ をかくと送信ができずMySQLにデータが入らないので
126
132
 
127
133
  ここにより詳細な情報を記載してください。

2

コードの修正

2020/01/18 06:38

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
  ### 発生している問題・エラーメッセージ
12
12
 
13
- 作品とレビューの紐付けをして作品ごとにそ作品のレビューが見らるようにしたいのですがうまくいきません。
13
+ レビュー作品ごとのidを入れたい
14
14
 
15
15
  作品をpostsテーブルという名前で作成。レビューをreviewsテーブルという名前で作成。
16
16
 
17
- reviewsテーブルにpost_idというカラムを作りました。ここに作品ごとの(post.id)idを入れたいのですができないです。
17
+ reviewsテーブルにpost_idというカラムを作りました。ここに作品ごとの(post.id)idを入れたいのですが作品ごとのidが入らずカラムに全部0が入ります。
18
18
 
19
19
  ```
20
20
 
@@ -32,6 +32,8 @@
32
32
 
33
33
  Rails.application.routes.draw do
34
34
 
35
+ devise_for :users
36
+
35
37
  get '/' => 'posts#index'
36
38
 
37
39
  get 'posts/new' => 'posts#new'
@@ -43,6 +45,8 @@
43
45
  post 'posts/:id' => 'posts#show'
44
46
 
45
47
  post 'reviews/create' => 'reviews#create'
48
+
49
+ get 'reviews/new' => 'reviews#new'
46
50
 
47
51
  resources :posts, only: :show do
48
52
 
@@ -62,37 +66,19 @@
62
66
 
63
67
 
64
68
 
65
- postsコントローラー
66
-
67
- ```ここに言語を入力
68
-
69
- class PostsController < ApplicationController
70
-
71
-
72
-
73
- def show
74
-
75
- @post = Post.find_by(id: params[:id])
76
-
77
- @reviews = Review.all
78
-
79
- end
80
-
81
- end
82
-
83
- ```
84
-
85
-
86
-
87
69
  reviewsコントローラー
88
70
 
89
71
  ```ここに言語を入力
90
72
 
73
+ def new
74
+
75
+ @post = Post.find(params[:post_id])
76
+
77
+ end
78
+
91
79
  def create
92
80
 
93
- @reviews = Review.create(nickname: params[:nickname],rate: params[:rate],review: params[:review] )
81
+ @reviews = Review.new(nickname: params[:nickname],rate: params[:rate],review: params[:review],post_id: params[:post_id])
94
-
95
- @post = Post.find_by(id: params[:id])
96
82
 
97
83
  if @reviews.save
98
84
 
@@ -103,34 +89,6 @@
103
89
  end
104
90
 
105
91
  ```
106
-
107
-
108
-
109
- postのshow.html.erb(ここに個別ごとのレビューを表示させたい)
110
-
111
- ```ここに言語を入力
112
-
113
- <div class="show_main">
114
-
115
- <h1 class="show_title"><%= @post.name %></h1>
116
-
117
- <div class="content_post" style="background-image: url(<%= @post.image %>);">
118
-
119
- </div>
120
-
121
- <a href="/posts/<%= @post.id %>/reviews/new"class="review_link">この作品をレビューする</a>
122
-
123
- <% @reviews.each do |review| %>
124
-
125
- <div class="review"><%= review.nickname %></div>
126
-
127
- <div class="review"><%= review.review %></div>
128
-
129
- <%end%>
130
-
131
- ```
132
-
133
-
134
92
 
135
93
  reviewのnew.html.erb(レビューの投稿画面)
136
94
 
@@ -144,15 +102,11 @@
144
102
 
145
103
  <textarea name="review" rows="4" cols="40" type="text">ここに感想を記入してください。</textarea>
146
104
 
105
+ <%= hidden_field_tag :post_id,value: @post.id %>
106
+
147
107
  <input type="submit" value="SENT">
148
108
 
149
109
  <%end%>
150
-
151
- ```
152
-
153
- ```ここに言語名を入力
154
-
155
-
156
110
 
157
111
  ```
158
112
 

1

アドバイスありがとうございます!コードを見やすくしました!

2020/01/18 06:35

投稿

sa.k
sa.k

スコア6

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,8 @@
28
28
 
29
29
  ルーティング
30
30
 
31
+ ```ここに言語を入力
32
+
31
33
  Rails.application.routes.draw do
32
34
 
33
35
  get '/' => 'posts#index'
@@ -56,9 +58,13 @@
56
58
 
57
59
  end
58
60
 
61
+ ```
62
+
59
63
 
60
64
 
61
65
  postsコントローラー
66
+
67
+ ```ここに言語を入力
62
68
 
63
69
  class PostsController < ApplicationController
64
70
 
@@ -74,9 +80,13 @@
74
80
 
75
81
  end
76
82
 
83
+ ```
84
+
77
85
 
78
86
 
79
87
  reviewsコントローラー
88
+
89
+ ```ここに言語を入力
80
90
 
81
91
  def create
82
92
 
@@ -92,9 +102,13 @@
92
102
 
93
103
  end
94
104
 
105
+ ```
106
+
95
107
 
96
108
 
97
109
  postのshow.html.erb(ここに個別ごとのレビューを表示させたい)
110
+
111
+ ```ここに言語を入力
98
112
 
99
113
  <div class="show_main">
100
114
 
@@ -114,9 +128,13 @@
114
128
 
115
129
  <%end%>
116
130
 
131
+ ```
132
+
117
133
 
118
134
 
119
135
  reviewのnew.html.erb(レビューの投稿画面)
136
+
137
+ ```ここに言語を入力
120
138
 
121
139
  <%= form_tag('/reviews/create',{multipart: true}) do %>
122
140
 
@@ -129,6 +147,8 @@
129
147
  <input type="submit" value="SENT">
130
148
 
131
149
  <%end%>
150
+
151
+ ```
132
152
 
133
153
  ```ここに言語名を入力
134
154