У меня есть требование иметь некоторые области в качестве интерактивных ссылок в моем приложении. Это позволит пользователю изменять отображаемые данные по мере необходимости. Используя Ransack и его функциональность ransackable_scopes, я очень близок. Мне нужно сохранить любую фильтрацию, которую сделал Ransack, когда пользователь щелкает область.
У меня работают области действия, но теперь мне просто нужно создать кликабельную ссылку.
Вот моя модель:
class Product < ActiveRecord::Base
scope :upward_trending, -> { where( "status > ?", 100).where(above_revenue_average: true).order('end_date DESC') }
scope :downward_trending, -> { where( "status < ?", 100).order('end_date DESC') }
def self.ransackable_scopes(auth_object = nil)
[:upward_trending, :downward_trending]
end
end
Теперь, на мой взгляд, я добавил эти две области в качестве скрытых полей, например:
<%= search_form_for @q, :html => {:class => 'filter-form'} do |f| %>
<div>
<%= f.hidden_field :upward_trending %>
<%= f.hidden_field :downward_trending %>
<%= f.label :name_cont, "Search", class: 'label' %>
<%= f.search_field :name_cont, class: 'form-control input-box', :placeholder => 'Search' %>
</div>
<div>
<%= f.submit "Filter", class: 'btn btn-primary' %>
<%= link_to "Clear Search", request.path, class:"btn btn-default" %>
</div>
<% end %>
Отсюда мне просто нужно создать ссылки, и это должно работать. Как лучше всего это сделать?
Спасибо за вашу помощь!