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

質問編集履歴

2

メンバーはデータベースにあるnameから選べるようにしました。

2019/11/24 12:36

投稿

nasuk47
nasuk47

スコア311

title CHANGED
File without changes
body CHANGED
@@ -75,8 +75,8 @@
75
75
  .contents
76
76
  .form
77
77
  = form_for @comment do |f|
78
- = fields_for(@member) do |member|
78
+ = fields_for :members do |m|
79
- = member.text_field :name, class: 'form__member', placeholder: 'メンバーの名前を入力してください'
79
+ = m.collection_select :member_id, Member.all, :id, :name, include_blank: true
80
80
  = f.text_field :place, class: 'form__place', placeholder: '観光地を入力してください'
81
81
  = f.text_area :text, class: 'form__review', placeholder: '感想(コメント)を入力してください'
82
82
  = f.text_field :image_url, class: 'form__image', placeholder: '画像のURLを貼り付けてください'

1

https://qiita.com/tomoharutsutsumi/items/761bdb114883f12edcd2を参考にcommentのcontrollerとviewを変更するとエラーが出る

2019/11/24 12:35

投稿

nasuk47
nasuk47

スコア311

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
1
  ### フォーム投稿時にメンバーのidとコメントのidを紐付けて保存したい
2
2
 
3
- ここに質問の内容を詳しく書いてください。
4
- フォム投稿時メンバの名前とコメント(場所、コメント、image)を保存する時に
3
+ 中間テブルとmemberのテーブルタが保存できない
5
- メンバーとコメントでそれぞれ保存されて中間テーブルに保存がされていない状況なのでメンバーのidとコメントのidを紐付けたい
4
+
6
5
  ### 発生している問題・エラーメッセージ
7
6
 
8
7
  ```
9
- 中間テーブルにデータが保存されない
8
+ ArgumentError in CommentsController#new
9
+ Unknown key: :allow_destory. Valid keys are: :allow_destroy, :reject_if, :limit, :update_only
10
10
  ```
11
11
 
12
12
  ### 該当のソースコード
@@ -46,13 +46,12 @@
46
46
 
47
47
  def new
48
48
  @comment = Comment.new
49
- @member = Member.new
49
+ @comment.member_comments.build
50
50
  end
51
51
 
52
52
  def create
53
53
  @comment = Comment.new(comment_params)
54
- @member = Member.new(member_params)
55
- if @comment.save && @member.save
54
+ if @comment.save
56
55
  redirect_to comments_path
57
56
  else
58
57
  render :new
@@ -67,12 +66,8 @@
67
66
 
68
67
  private
69
68
  def comment_params
70
- params.require(:comment).permit(:place, :text, :image_url)
69
+ params.require(:comment).permit(:place, :text, :image_url, member_comments_attributes:[:member_id])
71
70
  end
72
-
73
- def member_params
74
- params.require(:member).permit(:name)
75
- end
76
71
  end
77
72
 
78
73
  ```