質問編集履歴
2
参考記事の追加
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
コードの表示方法
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でデー
|
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
|
-
|
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
|
+
```
|