added better error messages for search errors

This commit is contained in:
albert
2012-01-13 18:21:16 -05:00
parent 67484e6c81
commit 28212516df
6 changed files with 15 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ class PostsController < ApplicationController
before_filter :member_only, :except => [:show, :index]
after_filter :save_recent_tags, :only => [:update]
respond_to :html, :xml, :json
rescue_from PostSets::SearchError, :with => :search_error
def index
@post_set = PostSets::Post.new(tag_query, params[:page])
@@ -38,6 +39,11 @@ class PostsController < ApplicationController
end
private
def search_error(exception)
@exception = exception
render :action => "error"
end
def tag_query
params[:tags] || (params[:post] && params[:post][:tags])
end

View File

@@ -1,7 +1,4 @@
module PostSets
class SearchError < Exception
end
class Post < Base
attr_reader :tag_array, :page
@@ -28,7 +25,7 @@ module PostSets
def posts
if tag_array.size > 2 && !CurrentUser.is_privileged?
raise SearchError
raise SearchError.new("Upgrade your account to search more than two tags at once")
end
@posts ||= ::Post.tag_match(tag_string).paginate(page)

View File

@@ -0,0 +1,4 @@
module PostSets
class SearchError < Exception
end
end

View File

@@ -0,0 +1 @@
<p>Error: <%= @exception.to_s %></p>

View File

@@ -0,0 +1 @@
{success: false, message: "<%= @exception.to_s %>"}

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<result success="false"><%= @exception.to_s %></result>