質問編集履歴

2

参考記事の追加

2020/05/05 05:47

投稿

WHdfghjk
WHdfghjk

スコア12

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,9 @@
135
135
 
136
136
 
137
137
  ```
138
+
139
+
140
+
141
+ 参考記事はこちらです。
142
+
143
+ https://pgmemo.tokyo/data/archives/540.html

1

コードの表示方法

2020/05/05 05:47

投稿

WHdfghjk
WHdfghjk

スコア12

test CHANGED
@@ -1 +1 @@
1
- javascript hidden 送信 parameter 設定
1
+ javascript hidden 送信 parameter ruby on rails
test CHANGED
@@ -1,19 +1,137 @@
1
1
  <概要>
2
2
 
3
- javascriptで取得したデータをhiddenでデーベースに保存するために、動的にhiddendで送られるようにできました
3
+ javascriptで取得したデータをhiddenでデーベースに保存するために、動的にhiddendで送られるようにできました.
4
+
5
+ そこで質問です。parameterのなかの、"lender"=>"坂本"を "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}のハッシュのなかに入れたいのです。
6
+
7
+ 私の考えでは、javascriptのq.nameの部分に、入るように記述を書けばいいのかと思っていおります。
8
+
9
+ それか、strong parameterに何かしらの手を加えればいいのでしょうか?教えてください。よろしくお願いします。
4
10
 
5
11
 
6
12
 
7
- 以下のように記述して送ることができました。
8
-
9
- ![イメージ説明](89db0f48006ce5d3c16e00364e6b9ce5.png)
10
13
 
11
14
 
12
15
 
13
- 送られてくるparameterの中身は以下のようになります。
14
-
15
- ![イメージ説明](5b88713f04cbe84a067d06d637e57fcc.png)
16
16
 
17
17
 
18
18
 
19
- parameterのなかの、"lender"=>"坂本"を  "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}のハッシュのなかに入れたいのですが、q.nameの部分に、どのようにjavascriptに記述すれば良いのかわかりません。
19
+
20
+
21
+ ```html
22
+
23
+ <%= form_with model:@order,url:admins_order_path(@order) do |f| %>
24
+
25
+ <tr>
26
+
27
+ <th>貸し出し返却ステータス</th>
28
+
29
+ <td width="300">
30
+
31
+ <% unless @order.status == "返却済" %>
32
+
33
+   <%= f.select :status, Order.statuses.keys.to_a, {}, class: "select_box" %>
34
+
35
+ <%= f.submit '更新',class: "btn btn-info update_button",'data-admin-name': current_admin.name %>
36
+
37
+ <% else %>
38
+
39
+ <%= @order.status %>
40
+
41
+ <% end %>
42
+
43
+ </td>
44
+
45
+ </tr>
46
+
47
+ <% end %>
48
+
49
+ ```
50
+
51
+
52
+
53
+ ```OrderModel
54
+
55
+ enum status: { 予約受付中: 0, 貸出中: 1, 返却済: 2, 郵送中: 3 }
56
+
57
+ ```
58
+
59
+
60
+
61
+ ```OrdersController
62
+
63
+ def update
64
+
65
+ order = Order.find(params[:id])
66
+
67
+ order.update(order_params)
68
+
69
+ end
70
+
71
+
72
+
73
+
74
+
75
+ def order_params
76
+
77
+ params.require(:order).permit(:status, :get_status, :return_status, :address, :zipcode, :day, :start_date, :finish_date, :user_id, :pay_status, :giv_point, :pay_id, :lender, :receiver)
78
+
79
+ end
80
+
81
+ ```
82
+
83
+
84
+
85
+
86
+
87
+ ```javascript
88
+
89
+ $('.update_button').click(function() {
90
+
91
+ var staff = $(this).data('admin-name');
92
+
93
+ if($('.select_box').val() == "貸出中"){
94
+
95
+ var q = document.createElement('input');
96
+
97
+ q.type = 'hidden';
98
+
99
+ q.name = "lender";
100
+
101
+ q.value = staff;
102
+
103
+ document.forms[0].appendChild(q);
104
+
105
+ }else if($('.select_box').val() == "返却済"){
106
+
107
+ var q = document.createElement('input');
108
+
109
+ q.type = 'hidden';
110
+
111
+ q.name = "receiver";
112
+
113
+ q.value = staff;
114
+
115
+ document.forms[0].appendChild(q);
116
+
117
+ }
118
+
119
+ });
120
+
121
+ ```
122
+
123
+
124
+
125
+ ```parameter
126
+
127
+ Started PATCH "/admins/orders/66" for 10.0.2.2 at 2020-05-04 12:28:16 +0000
128
+
129
+ Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
130
+
131
+ Processing by Admins::OrdersController#update as JS
132
+
133
+ Parameters: {"lender"=>"坂本", "utf8"=>"✓", "authenticity_token"=>"VaI8T/sEVxn+feGGH6qHf47BH4QRE8r96uGHIWJiKf8Ia3AJZVoejeI8KJdIm0zW7tud64ll5i+cvr5VZTQKjA==", "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}
134
+
135
+
136
+
137
+ ```