Форма поиска Rails - PullRequest
       1

Форма поиска Rails

5 голосов
/ 04 июля 2011

Я создаю приложение, которое отслеживает пользователей и достижения (например, xbox live и т. Д.). Эти таблицы связаны через объединяющую таблицу.Мне бы хотелось, чтобы в моем индексе была форма поиска, которая позволяла бы пользователям вводить имя пользователя, и на новую страницу загружался список всех достижений, которые получил пользователь.Я не совсем уверен, как настроить эту форму поиска в индексе, чтобы фактически выполнять поиск в таблице пользователей и возвращать результаты на новой странице.Любая помощь будет принята с благодарностью.Если вам потребуется дополнительная информация, я с радостью ее предоставлю.

Ответы [ 4 ]

5 голосов
/ 04 июля 2011

Вот небольшой фрагмент кода, который поможет вам начать, основываясь на том, что, я думаю, вам нужно из того, что вы сказали. Я надеюсь, что это полезно.

Для поискового бита вы могли бы сделать что-то подобное в представлении индекса:

<%= form_for User.new, :url => "search" do |f| %>
  <%= f.label :name %>
  <%- f.text_field :name %>
<%- end %>

В вашем контроллере:

def search
  q = params[:user][:name]
  @users = User.find(:all, :conditions => ["name LIKE %?%",q])
end

и в поиске:

<%-@users.each do |user| %>
  Name: <%=user.name %>

  <%- user.achievements.each do |achievement| %>
    <%= achievement.name %>
  <%- end %>
<%- end %>

Конечно, вам необходимо убедиться, что пользователи и модели достижений правильно связаны:

class User << ActiveRecord::Base
  has_many :achievements

end
2 голосов
/ 04 июля 2011

Есть множество обучающих программ и тому подобного, например ::10000

http://blog.devinterface.com/2010/05/how-to-model-a-custom-search-form-in-rails/

Смотри, каждое базовое объяснение в Rails3, начиная с предоставленного ими Начального учебника, объясняет, как настроить новый контроллер / модель. Пример был только один из тысяч, объясняющих ту же проблему.

Это очень широкий спектр различных вещей, которые вы можете сделать, чтобы достичь этого. В основном вы должны поместить некоторый код в контроллер:

  1. , который обрабатывает поиск (включая материал activerecord или любую другую технику, которую вы используете для доступа к своей модели)
  2. , который устанавливает некоторые переменные, необходимые для формы поиска

Настройка двух маршрутов и т. Д. Его широкий и полностью охватывается даже базовым официальным руководством по rails3.

0 голосов
/ 24 февраля 2015

Вы можете проверить драгоценность Ransack. https://github.com/activerecord-hackery/ransack

0 голосов
/ 17 сентября 2013

Вот приложение, основанное на searchlogic, очень полезное, и вы можете искать по любому, что пожелаете

   https://github.com/railscasts/176-searchlogic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...