diff --git a/app/models/category_finder.rb b/app/models/category_finder.rb index e815068..5b76805 100644 --- a/app/models/category_finder.rb +++ b/app/models/category_finder.rb @@ -20,7 +20,7 @@ class CategoryFinder asset_class(asset).paginate(:all, options_for_find(asset_class(asset), {:order => "created_at desc, #{asset_table(asset)}.id desc"}.merge(options))) else ferret_options = {:page => options.delete(:page), :per_page => options.delete(:per_page)} - asset_class(asset).find_by_contents(query, ferret_options, options_for_find(asset_class(asset), options)).uniq + asset_class(asset).find_by_contents(query, ferret_options, options_for_find(asset_class(asset), options)) end end @@ -63,7 +63,7 @@ class CategoryFinder case klass.name when 'Comment' - {:select => 'distinct comments.*', :joins => 'inner join articles_categories on articles_categories.article_id = comments.article_id', :conditions => ['articles_categories.category_id = (?)', category_id]}.merge!(options) + {:joins => 'inner join articles_categories on articles_categories.article_id = comments.article_id', :conditions => ['articles_categories.category_id = (?)', category_id]}.merge!(options) when 'Product' if prod_cat_ids {:joins => 'inner join categories_profiles on products.enterprise_id = categories_profiles.profile_id', :conditions => ['categories_profiles.category_id = (?) and products.product_category_id in (?)', category_id, prod_cat_ids]}.merge!(options) diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index cbd3d00..c042abd 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -9,7 +9,7 @@ class Enterprise < Organization extra_data_for_index :product_categories def product_categories - products.map{|p| p.category_full_name} + products.map{|p| p.category_full_name}.compact end def product_updated diff --git a/app/models/product.rb b/app/models/product.rb index 04d0394..262c75c 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -26,7 +26,7 @@ class Product < ActiveRecord::Base acts_as_mappable def category_full_name - product_category.full_name.split('/') + product_category ? product_category.full_name.split('/') : nil end acts_as_having_image diff --git a/app/models/profile_categorization.rb b/app/models/profile_categorization.rb index 5d3fa8f..9ba3fa1 100644 --- a/app/models/profile_categorization.rb +++ b/app/models/profile_categorization.rb @@ -4,7 +4,7 @@ class ProfileCategorization < ActiveRecord::Base belongs_to :category def self.add_category_to_profile(category, profile) - + return if self.find_by_category_id_and_profile_id(category.id, profile.id) connection.execute("insert into categories_profiles (category_id, profile_id) values(#{category.id}, #{profile.id})") c = category.parent diff --git a/app/views/search/_product_categories_menu.rhtml b/app/views/search/_product_categories_menu.rhtml index 8cba0d8..491018e 100644 --- a/app/views/search/_product_categories_menu.rhtml +++ b/app/views/search/_product_categories_menu.rhtml @@ -3,7 +3,11 @@