タスク管理のアプリを作っているところですが
fat controller
を作りたくないのでmodel
にほとんど移行したいのですが
途中params
の渡し方やscopeの使い方がなんもわからんです。
view
1th.end_pointer onclick='window.location="#{tasks_path(end_time: @end_time_num)}"' role="link" 2 = end_time_sub 3 th.create_pointer onclick='window.location="#{tasks_path(created_at: @created_at_num)}"' role="link" 4 = created_at_sub
helper
1def created_at_sub 2 params[:created_at].present? ? '登録日時▼' : '登録日時△' 3end 4 5def end_time_sub 6 params[:end_time].present? ? '終了期限▼' : '終了期限△' 7end
現在の設定
model
1scope :desc_end_time, -> { order("tasks.end_time DESC") } 2scope :desc_created_at, -> { order("tasks.created_at DESC") }
controller
1def index 2 if params[:created_at].present? 3 @tasks = Task.order("tasks.created_at DESC") 4 elsif params[:end_time].present? 5 @tasks = Task.order("tasks.end_time DESC") 6 else 7 @tasks = Task.order("tasks.created_at DESC") 8 end 9end
やろうとして失敗している状態
model
1scope :select_desc, ->(params[:created_at], params[:end_time]){ 2 if create.present? 3 order("tasks.created_at DESC") 4 elsif end_time.present? 5 order("tasks.end_time DESC") 6 else 7 order("tasks.created_at DESC") 8 end 9 }
参考にしているサイト等はありすぎてまとまってません????
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/11 07:08 編集