У меня есть html-таблица в приложении rails, где я оплачиваю все свои расходы.Расходы - это перечисление, которое может принимать такие значения, как «образование», «пиво», «блиблаблуб».
Я хотел бы иметь возможность фильтровать мою HTML-таблицу в соответствии с этими значениями перечисления.У меня есть ссылки на той стороне таблицы, на которую пользователь может нажать.Теперь я хочу, чтобы таблица фильтровала результаты по ссылкам.
Теперь, я думаю, что суть здесь - путь, но мне трудно понять, как они на самом деле работают.Я создал такую область видимости, чтобы понять это:
scope :find_category, -> {Expense.where(category:"education")}
В консоли Rails это работает, и когда я вызываю метод find_category, он дает мне примеры с образованием.
Я думаю, что динамический охват тогда будет выглядеть примерно так:
scope :find_category, -> (category) {Expense.where(category:category)}
Пока все хорошо.Теперь я не могу понять, как теперь использовать отфильтрованный результат в моем контроллере и просматривать его, то есть, как отфильтровать его при нажатии на ссылку.
Я попробовал это:
контроллер (пытается получить мои запрошенные результаты)
def find_category
@expense = Expense.find_category
render action: :index
end
А затем указать маршрут для find_categories:
resources :expenses, path: 'expenses' do
collection do
get :find_category
end
end
и поместите ссылку в индексе:
<%= link_to 'education', {controller: 'expenses', action: 'index', :find_category => 'education'} %>
Я знаю, что это не совсем так.Нажав на ссылку, она дает мне expenses?find_category=education
.Пока ничего не меняется.Поэтому я изо всех сил пытаюсь найти правильный способ сделать это.Конечно, было бы здорово сделать это без перезагрузки страницы, поэтому я думаю, что мне нужно использовать вызов AJAX и JavaScript.Но и с перезагрузкой страницы мне очень поможет.