Browse Source

Allow Blazer to work without a user model - closes #14

Andrew Kane 9 years ago
parent
commit
ae75629997

+ 4 - 3
app/controllers/blazer/queries_controller.rb

@@ -15,7 +15,8 @@ module Blazer
     before_action :set_query, only: [:show, :edit, :update, :destroy]
 
     def index
-      @queries = Blazer::Query.order(:name).includes(:creator)
+      @queries = Blazer::Query.order(:name)
+      @queries = @queries.includes(:creator) if Blazer.user_class
       @trending_queries = Blazer::Audit.group(:query_id).where("created_at > ?", 2.days.ago).having("COUNT(DISTINCT user_id) >= 3").uniq.count(:user_id)
     end
 
@@ -25,7 +26,7 @@ module Blazer
 
     def create
       @query = Blazer::Query.new(query_params)
-      @query.creator = current_user if respond_to?(:current_user)
+      @query.creator = current_user if respond_to?(:current_user) && Blazer.user_class
 
       if @query.save
         redirect_to @query
@@ -64,7 +65,7 @@ module Blazer
         if Blazer.audit
           audit = Blazer::Audit.new(statement: @statement)
           audit.query = @query
-          audit.user = current_user if respond_to?(:current_user)
+          audit.user = current_user if respond_to?(:current_user) && Blazer.user_class
           audit.save!
         end
 

+ 1 - 1
app/models/blazer/query.rb

@@ -1,6 +1,6 @@
 module Blazer
   class Query < ActiveRecord::Base
-    belongs_to :creator, class_name: Blazer.user_class.to_s
+    belongs_to :creator, class_name: Blazer.user_class.to_s if Blazer.user_class
 
     validates :name, presence: true
     validates :statement, presence: true

+ 1 - 1
app/views/blazer/queries/index.html.erb

@@ -26,7 +26,7 @@
             <% end %>
           </td>
           <td class="creator text-right text-muted">
-            <% if (creator = query.creator) and creator.respond_to?(Blazer.user_name) %>
+            <% if query.respond_to?(:creator) && (creator = query.creator) && creator.respond_to?(Blazer.user_name) %>
               <% name = creator.send(Blazer.user_name) %>
               <% if respond_to?(:current_user) and creator == current_user %>
                 You