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

質問編集履歴

5

試したこと追記

2020/05/17 21:49

投稿

shota-imoto
shota-imoto

スコア37

title CHANGED
File without changes
body CHANGED
@@ -134,8 +134,8 @@
134
134
  よろしくお願いいたします。
135
135
 
136
136
 
137
- ### 追記 試したこと
137
+ ## 追記 試したこと
138
- ## フォームで送るキー名を工夫
138
+ ### フォームで送るキー名を工夫
139
139
  別画面で実装した際にも同様にaccepts_nested_attributes_forコマンドが機能しませんでした。
140
140
  いっそ、フォームの方でごまかしせないか?と考えviewファイルを変更しました。field_forで送るキー名を変更してみました。
141
141
 
@@ -158,14 +158,13 @@
158
158
  @tuning_allの行が
159
159
  ```
160
160
  @song = Song.new(song_params)
161
- # 親レコードの
162
161
  ```
163
162
  にあたります。変数の型とは違う型を代入している際にでるエラーのようです。
164
163
  accepts_nested_attributes_forは表面的に表示を変える以上の働きをしているのかな?と考えました。
165
164
 
166
165
  フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。
167
166
 
168
- ## accepts~で同じエラーが発生している記事を発見
167
+ ### accepts~で同じエラーが発生している記事を発見
169
168
  [Rails fields_for と accepts_nested_attributes_for を使うときの注意点](https://acchann.hatenablog.com/entry/2018/03/16/224300)
170
169
  それって書き方変えただけじゃないの?というような内容ですが、わらにもすがる思いで真似してみましたが、結果変わらず。
171
170
  内容を要約すると、

4

試したことの追記

2020/05/17 21:49

投稿

shota-imoto
shota-imoto

スコア37

title CHANGED
File without changes
body CHANGED
@@ -135,6 +135,7 @@
135
135
 
136
136
 
137
137
  ### 追記 試したこと
138
+ ## フォームで送るキー名を工夫
138
139
  別画面で実装した際にも同様にaccepts_nested_attributes_forコマンドが機能しませんでした。
139
140
  いっそ、フォームの方でごまかしせないか?と考えviewファイルを変更しました。field_forで送るキー名を変更してみました。
140
141
 
@@ -152,7 +153,6 @@
152
153
  <ActionController::Parameters {"title"=>"why did you wonder", "jam"=>"0", "standard"=>"1", "beginner"=>"1", "keys_attributes"=><ActionController::Parameters {"name"=>"key of G", "instrumental"=>"0", "male"=>"1", "female"=>"0"} permitted: true>} permitted: false>
153
154
 
154
155
  ```
155
-
156
156
  すると別のエラーメッセージが表示されました。
157
157
  ![エラー画像](cddfd784f4ed26d5f7de01c1624e9d5f.png)
158
158
  @tuning_allの行が
@@ -165,6 +165,14 @@
165
165
 
166
166
  フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。
167
167
 
168
+ ## accepts~で同じエラーが発生している記事を発見
169
+ [Rails fields_for と accepts_nested_attributes_for を使うときの注意点](https://acchann.hatenablog.com/entry/2018/03/16/224300)
170
+ それって書き方変えただけじゃないの?というような内容ですが、わらにもすがる思いで真似してみましたが、結果変わらず。
171
+ 内容を要約すると、
172
+ - 子要素のモデルを作って送れているか?
173
+ - accepts~のあとに記述したものと、field_forでつけたキー名が一致しているか?
174
+ 子要素のモデルに関してはfield_forのところで定義されていたので、私が親コントローラのnewアクションのところで記述していたものを同じように書いてためしました。念の為。
175
+
168
176
  ### 追記 シンプルな疑問
169
177
  accepts〜の記述を受け付けないという事象は(原因は何にせよ、一般的に)そもそも発生し得ることなのでしょうか?
170
178
  例えば○○Gemをbundle installしていないと機能しない、versionX.Xでは機能しない、など一定の条件下では反応しないことがありうるのでしょうか。

3

追記の修正

2020/05/17 21:47

投稿

shota-imoto
shota-imoto

スコア37

title CHANGED
File without changes
body CHANGED
@@ -166,8 +166,8 @@
166
166
  フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。
167
167
 
168
168
  ### 追記 シンプルな疑問
169
- accepts〜の記述を受け付けないという事象は原因は何にせよ発生ることなのでしょうか?
169
+ accepts〜の記述を受け付けないという事象は(原因は何にせよ、一般的に)そもそも発生し得ることなのでしょうか?
170
- それとも○○Gemをbundle installしていないと機能しない、versionX.Xでは機能しない、など一定の条件下では反応しないことがありうるのでしょうか。
170
+ 例えば○○Gemをbundle installしていないと機能しない、versionX.Xでは機能しない、など一定の条件下では反応しないことがありうるのでしょうか。
171
171
  あり得る場合、エラーは発生するのでしょうか?それとも今起きているようにエラーは発生せず無視されるものなのでしょうか。
172
172
 
173
- 解決に直接至らなくてもそのあたりの切り分けができる情報があれば教えていただきたいと思っています。
173
+ 解決に直接至らなくてもそのあたりの切り分けがしたいの情報があれば教えていただきたいと思っています。

2

追記

2020/05/17 02:15

投稿

shota-imoto
shota-imoto

スコア37

title CHANGED
File without changes
body CHANGED
@@ -163,4 +163,11 @@
163
163
  にあたります。変数の型とは違う型を代入している際にでるエラーのようです。
164
164
  accepts_nested_attributes_forは表面的に表示を変える以上の働きをしているのかな?と考えました。
165
165
 
166
- フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。
166
+ フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。
167
+
168
+ ### 追記 シンプルな疑問
169
+ accepts〜の記述を受け付けないという事象は原因は何にせよ発生することなのでしょうか?
170
+ それとも○○Gemをbundle installしていないと機能しない、versionX.Xでは機能しない、など一定の条件下では反応しないことがありうるのでしょうか。
171
+ あり得る場合、エラーは発生するのでしょうか?それとも今起きているようにエラーは発生せず無視されるものなのでしょうか。
172
+
173
+ 解決に直接至らなくてもそのあたりの切り分けができる情報があれば教えていただきたいと思っています。

1

「試したこと」の追記

2020/05/17 02:09

投稿

shota-imoto
shota-imoto

スコア37

title CHANGED
@@ -1,1 +1,1 @@
1
- 1つのフォームで複数のモデル生成したいが、accepts_nested_attributes_forが機能せずキー名が正しく表示されない
1
+ つのフォームで親レコードと複数の子レコード保存したいが、accepts_nested_attributes_forが機能せずキー名が正しく表示されない
body CHANGED
@@ -1,6 +1,8 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  一つのフォームでアソシエイトが組まれた2つのモデルを生成したい。
4
+ タイトルの通り、accepts_nested_attributes_forが正しく機能してくれません。
5
+ そこさえ解決すればあとは問題なく実装できると踏んでいます。
4
6
 
5
7
  ### 発生している問題・エラーメッセージ
6
8
  以下のページのように実装。
@@ -71,52 +73,7 @@
71
73
  =f.fields_for :keys do |key_f|
72
74
  .chord-menu
73
75
  .chord-menu__key
74
- .key__key-display
76
+ // 中略
75
- = key_f.text_field :name, value: "key of G"
76
- .key__key-display--now
77
- key of G
78
- .key__key-display--relative-key
79
- 移動ド
80
- .chord-menu__key--palettes
81
- .palettes__section
82
- .palettes__palette.palettes__palette--one
83
- 移動ド
84
- .palettes__section
85
- .palettes__palette.palettes__palette--four
86
- G
87
- .palettes__palette.palettes__palette--four
88
- A
89
- .palettes__palette.palettes__palette--four
90
- B
91
- .palettes__palette.palettes__palette--four
92
- C
93
- .palettes__section
94
- .palettes__palette.palettes__palette--four
95
- D
96
- .palettes__palette.palettes__palette--four
97
- E
98
- .palettes__palette.palettes__palette--four
99
- F
100
- .palettes__section
101
- .palettes__palette.palettes__palette--three
102
- m
103
- .palettes__palette.palettes__palette--three
104
- \#
105
- .palettes__palette.palettes__palette--three
106
-
107
- .palettes__section
108
- .palettes__palette.palettes__palette--one
109
- 閉じる
110
- =key_f.label :instrumental, class: "class--element" do
111
- = key_f.check_box :instrumental, checked_value: "1", unchecked: "0"
112
- インストキー
113
- =key_f.label :male, class: "class--element" do
114
- = key_f.check_box :male, checked_value: "1", unchecked: "0"
115
- 男声キー
116
- =key_f.label :female, class: "class--element" do
117
- = key_f.check_box :female, checked_value: "1", unchecked: "0"
118
- 女声キー
119
- .form--btn
120
77
  = f.submit "登録"
121
78
 
122
79
 
@@ -172,6 +129,38 @@
172
129
  - 他にjqueryとscssを併用しています。
173
130
 
174
131
  これからfields_for以外の方法を試すつもりです。
175
- かれこれ6時間ほど詰まっているので教えていただけると幸いです。
132
+ かれこれ12時間ほど詰まっているので教えていただけると幸いです。
176
133
 
177
- よろしくお願いいたします。
134
+ よろしくお願いいたします。
135
+
136
+
137
+ ### 追記 試したこと
138
+ 別画面で実装した際にも同様にaccepts_nested_attributes_forコマンドが機能しませんでした。
139
+ いっそ、フォームの方でごまかしせないか?と考えviewファイルを変更しました。field_forで送るキー名を変更してみました。
140
+
141
+ ※別画面に実装しようとした際には、違うモデルを使っていますが混乱を避けるため、この質問で用いられるモデルに書き換えて、結果を表記します
142
+
143
+ viewファイル
144
+ ```haml
145
+ //略
146
+ .form__key
147
+ =f.fields_for :keys_attributes do |key_f|
148
+ //略
149
+ ```
150
+ ストロングパラメータsong_paramsの出力は以下の通りです。
151
+ ```ターミナル
152
+ <ActionController::Parameters {"title"=>"why did you wonder", "jam"=>"0", "standard"=>"1", "beginner"=>"1", "keys_attributes"=><ActionController::Parameters {"name"=>"key of G", "instrumental"=>"0", "male"=>"1", "female"=>"0"} permitted: true>} permitted: false>
153
+
154
+ ```
155
+
156
+ すると別のエラーメッセージが表示されました。
157
+ ![エラー画像](cddfd784f4ed26d5f7de01c1624e9d5f.png)
158
+ @tuning_allの行が
159
+ ```
160
+ @song = Song.new(song_params)
161
+ # 親レコードの
162
+ ```
163
+ にあたります。変数の型とは違う型を代入している際にでるエラーのようです。
164
+ accepts_nested_attributes_forは表面的に表示を変える以上の働きをしているのかな?と考えました。
165
+
166
+ フォームオブジェクトという初心者にはハードル高そうなものを使えば、accepts_nested~を使わなくても実装できるようなので、一度チャレンジしてみます。