2015-01-15 2 views
1

Недавно я обнаружил, рубиновый камень, ransackRails - Использование Ransack для запросов к базе данных через ссылку

Ransack может использоваться для запросов к базам данных ActiveRecord форм.

Что бы я хотел сделать, это запрос ActiveRecord, нажав на ссылки.

Скажем, я пишу спортивный блог и классифицирую статьи.

Скажем, мои категории - футбол, баскетбол, бейсбол и хоккей.

я смог найти статьи, связанные с баскетболом, написав этот код

<%= search_form_for @q do |f| %> 

    <%= f.label :category_eq, "Category" %> 
    <%= f.search_field :category_eq %></br></br> 

    <%= f.submit "Search", :class => 'submit-btn' %> 

<% end %> 

ввод в basketball и нажав кнопку.

Тогда я бы увидел список статей, касающихся баскетбола.

Что бы я хотел сделать, это посмотреть то же самое, только щелкнув по ссылке, запрашивается ActiveRecord.

Я знаю, что вы можете сделать это, создавая кучу разных путей, кучу разных действий контроллера, и в их запросе ActiveRecord следующим

<% Article.where(category: 'basketball').each do |article| %> 

    <%= article.title %> 
    <%= article.author %> 
    <%= article.content %> 
    <%= article.category %> 

<% end %> 

Это, кажется, как много дополнительной работы, и там есть быть более простым способом

ответ

3

Вам не нужно создавать новые маршруты. Просто создайте ссылку с соответствующим q параметра (ов):

<%= link_to 'Basketball articles', q: {category_eq: 'Basketball'} %> 

выше ссылка будет перейти к текущему URL, но с Парам запроса Баскетбола. Вы также можете передать параметр q на путь или URL-адрес помощника:

<%= link_to 'Basketball articles', articles_path(q: {category_eq: 'Basketball'}) %> 
+0

Удивительно, что сработало. Большое спасибо – Darkmouse

Смежные вопросы