У меня есть приборная панель с диапазоном дат, пользователь может искать актив за тот период, который он хочет.
У меня есть разные модели, которыми я управляю с одной и той же панелью управления
Например, я хочунайти:
- пользователей, зарегистрированных в диапазоне дат
- продаж в диапазоне дат
- и т. д.
У меня есть кнопки, которые представляют модели, при нажатии они отображают соответствующий фрагмент.
Я могу искать диапазон дат, но он работает только для первого фрагмента sales , в этом случае, если я нажимаюна следующей кнопке, которая пользователи перенаправление поиска на первом частичном sales
Это происходит потому, что шоу действия панели мониторинга по умолчанию sales Мне нужно что-то, что отображает текущую активную кнопку ...
Не могли бы вы помочь мне, пожалуйста, найти, как это сделать?
ниже некоторого кода:
dashboard.rb
class Dashboard
attr_reader :date_from, :date_to
def initialize(params)
params ||= {}
@date_from = parsed_date(params[:date_from],Time.now.beginning_of_month.to_date.to_s)
@date_to = parsed_date(params[:date_to], (Date.today + 1).to_s)
end
def article_date_range
Article.where('created_at BETWEEN ? AND ?', @date_from, @date_to)
end
private
def parsed_date(date_string, default)
Date.parse(date_string)
rescue ArgumentError, TypeError
default
end
end
действие показа в dashboards_controller.rb
def show
@button ||= set_button || :sales
@dashboard = Dashboard.new(params[:search])
@articles = @dashboard.article_date_range
@articles = @articles.order('created_at ASC')
end
private
def set_button
button = dashboard__params[:button]&.to_sym and [:sales, :users].include?(button) and button
end
эта форма и кнопки находятся на приборной панели show.html.erb
<%= form_tag admin_dashboard_path, method: :get do %>
<%= text_field_tag "search[date_from]", @dashboard.date_from, class: "datepicker" %>
<%= text_field_tag "search[date_to]", @dashboard.date_to, class: "datepicker" %>
<%= submit_tag "Rechercher", class: "btn btn-main" %>
<% end %>
#the buttons that "redirect" to the appropriated partial
<% [:sales, :users, :articles].each do |button| %>
<li class="tabs list-inline-item <%= params[:button] == button.to_s ? "tabs__item--active" : "tabs__item--inactive" %>">
<%= link_to admin_dashboard_url(button: button) do %>
<%= button.capitalize %>
<% end %>
</li>
<% end %>
Обновление
Идея заключается в том, что пользовательвыберите диапазон дат, а затем нажмите на кнопки, чтобы просмотреть активность в выбранном диапазоне дат для продаж товаров или пользователей (без повторного выбора диапазона дат) 