回答編集履歴

1

コメントへの回答

2021/11/05 14:05

投稿

neko_daisuki
neko_daisuki

スコア2090

test CHANGED
@@ -67,3 +67,55 @@
67
67
  @books = Book.order(params[:order])
68
68
 
69
69
  ```
70
+
71
+
72
+
73
+ ## 追記
74
+
75
+
76
+
77
+ order_by がハッシュを返すようにします。
78
+
79
+ params[:order] が配列 ASC に含まれるとき { params[:order] => :asc }
80
+
81
+ DESC に含まれるとき { params[:order] => :desc }
82
+
83
+ 含まれない時(リーロードしたとき) { id: :asc} を返します
84
+
85
+
86
+
87
+ ```ruby
88
+
89
+ def index
90
+
91
+ @books = Book.order(order_by)
92
+
93
+ end
94
+
95
+
96
+
97
+ ASC = ["evaluation"]
98
+
99
+ DESC = ["updated_at", "created_at"]
100
+
101
+
102
+
103
+ def order_by
104
+
105
+ if ASC.include?(params[:order])
106
+
107
+ { params[:order] => :asc }
108
+
109
+ elsif DESC.include?(params[:order])
110
+
111
+ { params[:order] => :desc }
112
+
113
+ else
114
+
115
+ { id: :asc }
116
+
117
+ end
118
+
119
+ end
120
+
121
+ ```