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

質問編集履歴

2

誤字の修正

2016/09/18 11:12

投稿

rendezvous_pc
rendezvous_pc

スコア12

title CHANGED
File without changes
body CHANGED
@@ -12,13 +12,15 @@
12
12
  platform_typeの値として"1"と"2"を送信することが出来ています。
13
13
 
14
14
  実現したい処理としましては、
15
- > ①チェックされている項目では、INSERT時にplatform_typeの値挿入
15
+ > ①チェックされている項目では、INSERT時にplatform_typeの値挿入
16
- > チェックされていない項目ではDELETE
16
+ > チェックされていない項目ではDELETE
17
+
17
18
  となります。
18
19
 
19
20
  現在は
20
21
  > ①チェックされている項目では、INSERT時にplatform_typeの値が空
21
- > チェックされていない項目ではplatform_typeの値が挿入され、DELETEされない
22
+ > チェックされていない項目ではplatform_typeの値が挿入され、DELETEされない
23
+
22
24
  といった状況です。
23
25
 
24
26
  こちらの解決策をご存じの方がいらっしゃいましたら、

1

記述の変更

2016/09/18 11:12

投稿

rendezvous_pc
rendezvous_pc

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,34 @@
1
1
  全く同じ内容のチェックボックス郡を画面上に2つ用意し、
2
- どちらもuser_platformsという中間テーブルにデータを挿入する処理を考えております。
2
+ どちらもuser_platformsという中間テーブルにデータを挿入する処理を考えております。
3
3
 
4
4
  1つ目のチェックボックス郡で選択された値は、
5
- type => "1"
5
+ platform_type => "1"
6
6
  2つ目のチェックボックス郡で選択された値は、
7
- type => "2"
7
+ platform_type => "2"
8
8
 
9
9
  といったようにuser_platformsに登録する値を変更したいです。
10
10
 
11
- 現在考えております方法ビューのname値変更し
11
+ 現在はビューにhiddenフォーム用意することで
12
- ポストされてきた値を登録前に変換するといった方法です。
12
+ platform_typeのとして"1"と"2"送信するが出来てす。
13
13
 
14
- これよりも簡単に実装できる方法などがございましたら、
15
- 教えていだけると幸です。
14
+ 実現したい処理としましては、
15
+ > ①チェックされている項目では、INSERT時にplatform_typeの値が挿入
16
+ > チェックされていない項目ではDELETE
17
+ となります。
16
18
 
19
+ 現在は
20
+ > ①チェックされている項目では、INSERT時にplatform_typeの値が空
21
+ > チェックされていない項目ではplatform_typeの値が挿入され、DELETEされない
22
+ といった状況です。
23
+
24
+ こちらの解決策をご存じの方がいらっしゃいましたら、
25
+ ご教授いただけると幸いです。
26
+
27
+
17
28
  ■テーブル
18
29
  > users(id, name)
19
30
  > platforms(id, name)
20
- > user_platforms(id, user_id, platform_id, type)
31
+ > user_platforms(id, user_id, platform_id, platform_type )
21
32
 
22
33
 
23
34
  ■コントローラー
@@ -26,7 +37,7 @@
26
37
  @user = current_user
27
38
  end
28
39
 
29
- params.require(:user).permit(:name, platform_ids: [])
40
+ params.require(:user).permit(:name, platform_ids: [], :user_platforms_attributes => [:platform_type])
30
41
  ```
31
42
 
32
43
  ■モデル
@@ -72,10 +83,13 @@
72
83
  = f.label :platform_ids, "メインプラットフォーム", class: "control-label"
73
84
  %p
74
85
  = f.collection_check_boxes :platform_ids, Platform.all, :id, :name
86
+ =f.fields_for :user_platforms do |upf1|
87
+ =upf1.hidden_field :platform_type, :value => "1"
75
88
  .form-group
76
89
  = f.label :platform_ids, "サブプラットフォーム", class: "control-label"
77
90
  %p
78
91
  = f.collection_check_boxes :platform_ids, Platform.all, :id, :name
79
-
92
+ =f.fields_for :user_platforms do |upf2|
93
+ =upf2.hidden_field :platform_type, :value => "1"
80
94
  = f.submit "送信する", class: "btn btn-success"
81
95
  ```