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

質問編集履歴

2

参考記事の追加

2020/05/05 05:47

投稿

WHdfghjk
WHdfghjk

スコア12

title CHANGED
File without changes
body CHANGED
@@ -66,4 +66,7 @@
66
66
  Processing by Admins::OrdersController#update as JS
67
67
  Parameters: {"lender"=>"坂本", "utf8"=>"✓", "authenticity_token"=>"VaI8T/sEVxn+feGGH6qHf47BH4QRE8r96uGHIWJiKf8Ia3AJZVoejeI8KJdIm0zW7tud64ll5i+cvr5VZTQKjA==", "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}
68
68
 
69
- ```
69
+ ```
70
+
71
+ 参考記事はこちらです。
72
+ https://pgmemo.tokyo/data/archives/540.html

1

コードの表示方法

2020/05/05 05:47

投稿

WHdfghjk
WHdfghjk

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- javascript hidden 送信 parameter 設定
1
+ javascript hidden 送信 parameter ruby on rails
body CHANGED
@@ -1,10 +1,69 @@
1
1
  <概要>
2
- javascriptで取得したデータをhiddenでデーベースに保存するために、動的にhiddendで送られるようにできました
2
+ javascriptで取得したデータをhiddenでデーベースに保存するために、動的にhiddendで送られるようにできました.
3
+ そこで質問です。parameterのなかの、"lender"=>"坂本"を "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}のハッシュのなかに入れたいのです。
4
+ 私の考えでは、javascriptのq.nameの部分に、入るように記述を書けばいいのかと思っていおります。
5
+ それか、strong parameterに何かしらの手を加えればいいのでしょうか?教えてください。よろしくお願いします。
3
6
 
4
- 以下のように記述して送ることができました。
5
- ![イメージ説明](89db0f48006ce5d3c16e00364e6b9ce5.png)
6
7
 
7
- 送られてくるparameterの中身は以下のようになります。
8
- ![イメージ説明](5b88713f04cbe84a067d06d637e57fcc.png)
9
8
 
10
- parameterのなかの、"lender"=>"坂本"を  "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}のハッシュのなかに入れたいのですが、q.nameの部分に、どのようにjavascriptに記述すれば良いのかわかりません。
9
+
10
+
11
+ ```html
12
+ <%= form_with model:@order,url:admins_order_path(@order) do |f| %>
13
+ <tr>
14
+ <th>貸し出し返却ステータス</th>
15
+ <td width="300">
16
+ <% unless @order.status == "返却済" %>
17
+   <%= f.select :status, Order.statuses.keys.to_a, {}, class: "select_box" %>
18
+ <%= f.submit '更新',class: "btn btn-info update_button",'data-admin-name': current_admin.name %>
19
+ <% else %>
20
+ <%= @order.status %>
21
+ <% end %>
22
+ </td>
23
+ </tr>
24
+ <% end %>
25
+ ```
26
+
27
+ ```OrderModel
28
+ enum status: { 予約受付中: 0, 貸出中: 1, 返却済: 2, 郵送中: 3 }
29
+ ```
30
+
31
+ ```OrdersController
32
+ def update
33
+ order = Order.find(params[:id])
34
+ order.update(order_params)
35
+ end
36
+
37
+
38
+ def order_params
39
+ 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)
40
+ end
41
+ ```
42
+
43
+
44
+ ```javascript
45
+ $('.update_button').click(function() {
46
+ var staff = $(this).data('admin-name');
47
+ if($('.select_box').val() == "貸出中"){
48
+ var q = document.createElement('input');
49
+ q.type = 'hidden';
50
+ q.name = "lender";
51
+ q.value = staff;
52
+ document.forms[0].appendChild(q);
53
+ }else if($('.select_box').val() == "返却済"){
54
+ var q = document.createElement('input');
55
+ q.type = 'hidden';
56
+ q.name = "receiver";
57
+ q.value = staff;
58
+ document.forms[0].appendChild(q);
59
+ }
60
+ });
61
+ ```
62
+
63
+ ```parameter
64
+ Started PATCH "/admins/orders/66" for 10.0.2.2 at 2020-05-04 12:28:16 +0000
65
+ Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
66
+ Processing by Admins::OrdersController#update as JS
67
+ Parameters: {"lender"=>"坂本", "utf8"=>"✓", "authenticity_token"=>"VaI8T/sEVxn+feGGH6qHf47BH4QRE8r96uGHIWJiKf8Ia3AJZVoejeI8KJdIm0zW7tud64ll5i+cvr5VZTQKjA==", "order"=>{"status"=>"貸出中", "pay_status"=>"false"}, "id"=>"66"}
68
+
69
+ ```