Commit c35586ca

mo khan <mo@mokhan.ca>
2014-10-19 23:05:41
update tutorials pages to support site wide search.
1 parent 976d92e
Changed files (4)
app/controllers/tutorials_controller.rb
@@ -1,6 +1,6 @@
 class TutorialsController < ApplicationController
   def index
-    @tutorials = Tutorial.includes(:user).page(params[:page]).per(12)
+    @tutorials = Tutorial.includes(:user).search(params[:q]).page(page).per(per_page)
   end
 
   def show
app/models/tutorial.rb
@@ -3,6 +3,7 @@ class Tutorial < ActiveRecord::Base
   belongs_to :user
   acts_as_taggable
   default_scope -> { order('tutorials.created_at desc') }
+  scope :search, ->(query) { query.blank? ? all : where(["UPPER(heading) LIKE :query OR UPPER(description) LIKE :query", { query: "%#{query.upcase}%" }]) }
 
   def to_param
     "#{id}-#{heading.gsub(/[^a-z0-9]+/i, '-')}"
app/views/tutorials/index.html.erb
@@ -1,3 +1,4 @@
+<%= provide(:search_path, tutorials_path) %>
 <div class="row-fluid">
   <% @tutorials.each_slice(6).each do |batch| %>
     <ul class='thumbnails'>
app/views/tutorials/show.html.erb
@@ -1,3 +1,4 @@
+<%= provide(:search_path, tutorials_path) %>
 <div class="row-fluid">
   <div class="span12">
     <div class="thumbnail">