Skip to content

Commit

Permalink
move some of the search method from controller to model
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronwiggins committed Jul 15, 2015
1 parent 4845d1d commit 66aabe4
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 20 deletions.
14 changes: 7 additions & 7 deletions app/controllers/experiments_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,24 @@ class ExperimentsController < ApplicationController
# GET /experiments.json
def index
if params[:query]
@experiments = Experiment.text_search(params[:query])
@experiments = Experiment.text_search(params[:query], params[:organize])
if @experiments.length == 0
flash.now[:notice] = "No items found"
end
elsif params[:organize]
if params[:organize] == "1"
if params[:organize] == "2"
@experiments = Experiment.order(:complete_time)
elsif params[:organize] == "1"
@experiments = Experiment.order(:age)
elsif params[:organize] == "2"
@experiments = Experiment.time
end
else
@experiments = Experiment.by_votes
end
end

# def ages
# @experiments = Experiment.order(:age)
# end
def ages
@experiments = Experiment.order(:complete_time)
end
#
# def mess_ratings
# # @experiments = Experiment.order_by_mess
Expand Down
8 changes: 4 additions & 4 deletions app/helpers/experiments_helper.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module ExperimentsHelper

def embed(youtube_url)
youtube_id = youtube_url.split("=").last
content_tag(:iframe, nil, src: "//www.youtube.com/embed/#{youtube_id}")
end
youtube_id = youtube_url.split("=").last
content_tag(:iframe, nil, src: "//www.youtube.com/embed/#{youtube_id}")
end

end
14 changes: 12 additions & 2 deletions app/models/experiment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,22 @@ class Experiment < ActiveRecord::Base
validates_format_of :youtube_link,
:with => /\A(?:https?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?([\w-]{10,})\z/,
:on => :create
scope :time, -> { order(:complete_time) }
scope :by_time, -> { order(:complete_time) }

def self.text_search(query)
def self.text_search(query, order)
if order == ""
q = "%#{query}%"
joins(:materials)
.where("name LIKE ? OR description LIKE ? OR item LIKE ?", q, q, q).uniq
elsif order == "1"
q = "%#{query}%"
joins(:materials)
.where("name LIKE ? OR description LIKE ? OR item LIKE ?", q, q, q).uniq.order(:age)
elsif order == "2"
q = "%#{query}%"
joins(:materials)
.where("name LIKE ? OR description LIKE ? OR item LIKE ?", q, q, q).uniq.order(:complete_time)
end
end

def self.by_votes
Expand Down
9 changes: 2 additions & 7 deletions app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,11 @@
<div class="nav-button"><%= link_to_unless_current("Age", ages_experiments_path, :class => "nav-tab") %></div>
<div class="nav-button"><%= link_to_unless_current("Mess Factor", mess_ratings_experiments_path, :class => "nav-tab") %></div>-->
<!-- search forms -->
<!-- <%= form_tag experiments_path, :method => "get", id: "search-form" do %>
<%= form_tag experiments_path, :method => "get", id: "search-form" do %>
<%= text_field_tag "query", params[:query], placeholder: "Search Experiments", class: "exp-search" %>
<%= select_tag "organize", options_for_select([["Age", 1],["Time",2]], params[:organize]),{:prompt => 'Choose Filter'} %>
<%= submit_tag "Search" %>
<% end %>
<%= form_tag experiments_path, :method => "get", class: "filter-form" do %>
<%= select_tag "organize", options_for_select([["Age", 1],["Time",2]], params[:organize]),{:prompt => 'Choose Filter'} %>
<%= submit_tag "Order" %>
<% end %> -->


</div>
</header>
Expand Down

0 comments on commit 66aabe4

Please sign in to comment.