質問編集履歴

2

見出しの追加

2022/03/10 12:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -129,10 +129,11 @@
129
129
  end
130
130
  ```
131
131
 
132
+ ### 実現したいこと
132
133
  ユーザーが新たな記事を投稿した際、
133
134
  1. postsテーブルに「title」と「body」を保存
134
135
  2. post_category_mapsテーブルに「post_id」と「category_id」の1セット(関連付け)を保存
135
- したいのですが、現状、投稿してもエラーとなってしまいます。
136
+ したいのですが、現状、投稿しても「title」と「body」は保存されるものの、「post_id」と「category_id」の関連付けは保存されずエラーとなってしまいます。
136
137
 
137
138
  ### エラー内容
138
139
  ```ターミナル

1

viewファイルの追加

2022/03/10 12:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -142,3 +142,66 @@
142
142
 
143
143
  postsコントローラーファイルをどのように修正すれば「投稿」と「カテゴリー」の関連付けがpost_category_mapsテーブルに保存できるようになるでしょうか?
144
144
  お教えいただければ幸いです。
145
+
146
+ # 追記
147
+ newのviewファイルの内容は以下になります。
148
+ ```vue
149
+ <template>
150
+ <v-form
151
+ ref="form"
152
+ v-model="isValid"
153
+ @submit.prevent="post"
154
+ >
155
+ <form-input-post-title
156
+ :title.sync="params.post.title"
157
+ />
158
+ <form-input-post-body
159
+ :body.sync="params.post.body"
160
+ />
161
+ <form-input-post-category
162
+ :category_id.sync="params.post.category_id"
163
+ />
164
+ <v-btn
165
+ type="submit"
166
+ :disabled="!isValid || loading"
167
+ :loading="loading"
168
+ value="送信"
169
+ >
170
+ 送信
171
+ </v-btn>
172
+ </v-form>
173
+ </template>
174
+
175
+ <script>
176
+ export default {
177
+ name: 'PagesNew',
178
+ layout: 'new',
179
+ data ({ $store }) {
180
+ return {
181
+ isValid: false,
182
+ loading: false,
183
+ params: {
184
+ post: {
185
+ user_id: this.$store.state.user.current.id,
186
+ title: '',
187
+ body: '',
188
+ category_id: 0
189
+ }
190
+ }
191
+ }
192
+ },
193
+ methods: {
194
+ async post () {
195
+ this.loading = true
196
+ setTimeout(() => {
197
+ this.loading = false
198
+ }, 1500)
199
+ if (this.isValid) {
200
+ await this.$axios.$post('/api/v1/posts', this.params)
201
+ }
202
+ this.loading = false
203
+ }
204
+ }
205
+ }
206
+ </script>
207
+ ```