Я немного новичок в рельсах. Сейчас я собираюсь сделать классический твиттер-клон. Я хочу иметь панель поиска на моей домашней странице, которая позволяет пользователю искать твиттер, и если дескриптор существует, он отправит пользователя на страницу показа этого твиттера.Поле поиска, чтобы найти пользователя в рельсах
Я слежу за RailsCast за то, как реализовать простой поиск, но вместо того, чтобы делать это на индексе, таком как видео, я хочу сделать это в действии show. Однако я столкнулся с некоторыми проблемами. Форма находится на моем индексном указателе пользователя. Здесь ошибка:
ActionController::UrlGenerationError in Users#index
Showing c:/Sites/Projects/twitterapp/twitter/app/views/users/index.html.erb where line #2 raised:
No route matches {:action=>"show", :controller=>"users"} missing required keys: [:id]
Вот форма:
<%= form_tag(user_path, method: 'get') do %>
<%= text_field_tag(:search, params[:search]) %>
<%= submit_tag("Search", name: nil) %>
<% end %>
Вот мое шоу действие:
def show
@user = User.search(params[:search])
end
А вот мой метод поиска в моей модели пользователя:
def self.search(search)
if search
find(:all, conditions:['name LIKE ?', "%#{search}%"])
else
find(:all)
end
end