Я пытался сделать это последние 2 часа безуспешно, я уверен, что это что-то действительно простое:)
Итак, у меня есть форма, где пользователи могут искать вещи по некоторым ключевым словам.,Вот код формы:
<%= form_tag search_by_description_path,:method => "get" do %>
<div class="column span-3">
<label>Search</label>
</div>
<div class="column span-5">
<input type="text" name="search_keywords" id="search_keywords"/>
</div>
<div class="column span-6">
<%= collection_select :category,:id,Category.all,:id,:name,:include_blank => "Everything" %>
</div>
<div class="column span-3">
<%= submit_tag "search" %>
</div>
<% end %>
У меня есть это в routes.rb
:
get "search_by_description" => "search#search_by_description",:as => "search_by_description"
У меня это в контроллере:
def search_by_description
category = params[:category_id]
kw = params[:search_keywords]
@results = Posts.where("description LIKE ?","%#{kw}%").page(params[:page])
end
Игнорироватьтот факт, что я не слежу за category_id
.На мой взгляд, у меня есть это:
<%= render "results",:locals => {:results => @results} %>
<%= paginate(@results) %>
Проблема в том, что когда я перехожу на вторую страницу, я не вижу ничего отображаемого.Посмотрев в консоль, я заметил, что для 1-й страницы генерируется следующий SQL:
SELECT "posts".* FROM "posts" WHERE (description LIKE '%lorem%') ORDER BY id LIMIT 25 OF
SELECT COUNT(*) FROM "posts" WHERE (description LIKE '%lorem%')
, а для второй:
SELECT COUNT(*) FROM "posts" WHERE (description LIKE '%lorem%') LIMIT 25 OFFSET 25
Пожалуйста, дайте мне несколько советов,Я не хочу прибегать к написанию собственной нумерации страниц:)