navbar를 통해 전달 된 params 값과 select 태그의 이름을 기반으로 현재 사용자의 (관리자) 데이터를 표시하고 싶습니다. 사용자는 두 개의 역할 ('user', 'manager') 또는 열거 형 역할 (0, 1). 이것은 내가 네비게이션 바에서 제공 한 링크입니다 -현재 사용자의 데이터와 그 이름을 선택 태그에 표시합니다.
%li= link_to 'Timesheet', is_manager? ? timesheet_path(user_id: current_user.id) : timesheet_path, class: navlink_class('timesheets')
하지만 사용한 쿼리가이만큼 컨트롤러에 복잡지고 -
@begin_date = params[:begin_date].present? ? Date.parse(params[:begin_date]) : Date.today.beginning_of_month
@end_date = params[:end_date].present? ? Date.parse(params[:end_date]) : Date.today.end_of_month
begin_datetime = @begin_date.beginning_of_day
end_datetime = @end_date.end_of_day
@user_tasks = Task.joins(:task_time_trackers).where("(task_time_trackers.created_at BETWEEN ? AND ?)",begin_datetime, end_datetime).distinct.order("id ASC")
user_trackers = TaskTimeTracker.joins(:task).where("(task_time_trackers.created_at BETWEEN ? AND ?)",begin_datetime, end_datetime)
u_id = nil
u_id = params[:u_id] if (params[:u_id] && params[:u_id] != 'all')
u_id = current_user.id if current_user.role == 'user'
unless u_id.nil?
@user_tasks = @user_tasks.where(task_time_trackers: { user_id: u_id})
user_trackers = user_trackers.where(task_time_trackers: { user_id: u_id})
end
마지막 선택 태그있는 I 사용한 -
select_tag(:u_id, options_for_select(User.user_for_select(current_user), selected: params[:u_id]), class: "input-sm form-control", onchange: "this.form.submit();")
사용자 모델 -
,321 0
사용자의 사용자 및 관리자에 대한 두 가지 역할이있다, 관리자가 사용자를 선택하거나 할 수 있습니다 나는 결과를 얻었다 승, 네비게이션 바이 변경 한 모든 사용자, 나는 이것을 작업 표에서 사용하고 있습니다. 그래서 기본적으로 모든 사용자에 대한 모든 레코드를로드합니다. 그래서 먼저 작업 표를로드하고 나서 모든 사용자를 모두 한 번 볼 수 있는지 선택할 수 있습니다 ,이 레코드 생성에 사용한 쿼리도 추가하고 있습니다. –
내 대답을 업데이트하고 도움이 필요하면 받아들입니다. :) –