added filter criteria models
This commit is contained in:
20
front-api/controllers/filter_criteria.rb
Normal file
20
front-api/controllers/filter_criteria.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
get '/filter/section/:id' do |id_s|
|
||||
# get filter criteria for a section with id
|
||||
FilterCriteria.where(:owner_type => "Section").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
|
||||
get '/filter/category/:id' do |id_s|
|
||||
# get filter criteria for a category with id
|
||||
FilterCriteria.where(:owner_type => "Category").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
|
||||
get '/filter/subcategory/:id' do |id_s|
|
||||
# get filter criteria for a subcategory with id
|
||||
FilterCriteria.where(:owner_type => "Subcategory").where(:owner_id => id_s.to_i).to_json(
|
||||
:include => [:filter_criteria_values]
|
||||
)
|
||||
end
|
||||
@@ -0,0 +1,11 @@
|
||||
class CreateFilterCriteria < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :filter_criteria do |t|
|
||||
t.string :title
|
||||
t.string :field_name
|
||||
t.integer :type # list, checkbox list
|
||||
t.string :owner_type # section, cat, subcat
|
||||
t.integer :owner_id
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class CreateFilterCriteriaValues < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :filter_criteria_values do |t|
|
||||
t.string :filter_text
|
||||
t.string :filter_value
|
||||
t.integer :filter_criteria_id
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20150206041455) do
|
||||
ActiveRecord::Schema.define(version: 20150207120207) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
@@ -30,6 +30,20 @@ ActiveRecord::Schema.define(version: 20150206041455) do
|
||||
t.string "image_url"
|
||||
end
|
||||
|
||||
create_table "filter_criteria", force: :cascade do |t|
|
||||
t.string "title"
|
||||
t.string "field_name"
|
||||
t.integer "type"
|
||||
t.integer "owner_type"
|
||||
t.integer "owner_id"
|
||||
end
|
||||
|
||||
create_table "filter_criteria_values", force: :cascade do |t|
|
||||
t.string "filter_text"
|
||||
t.string "filter_value"
|
||||
t.integer "filter_criteria_id"
|
||||
end
|
||||
|
||||
create_table "item_in_carts", force: :cascade do |t|
|
||||
t.integer "cart_id"
|
||||
t.integer "item_id"
|
||||
@@ -72,10 +86,8 @@ ActiveRecord::Schema.define(version: 20150206041455) do
|
||||
end
|
||||
|
||||
create_table "sub_categories", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.integer "category_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "name"
|
||||
t.integer "category_id"
|
||||
end
|
||||
|
||||
create_table "units", force: :cascade do |t|
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
class Category < ActiveRecord::Base
|
||||
has_many :sub_categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
belongs_to :section
|
||||
end
|
||||
|
||||
9
front-api/models/filter_criteria.rb
Normal file
9
front-api/models/filter_criteria.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
class FilterCriteria < ActiveRecord::Base
|
||||
has_many :filter_criteria_values
|
||||
belongs_to :owner, polymorphic: true
|
||||
|
||||
self.inheritance_column = :_type_disabled
|
||||
def owner_type=(class_name)
|
||||
super(class_name.constantize.base_class.to_s)
|
||||
end
|
||||
end
|
||||
3
front-api/models/filter_criteria_value.rb
Normal file
3
front-api/models/filter_criteria_value.rb
Normal file
@@ -0,0 +1,3 @@
|
||||
class FilterCriteriaValue < ActiveRecord::Base
|
||||
belongs_to :filter_criteria
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
class Section < ActiveRecord::Base
|
||||
has_many :categories
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
class SubCategory < ActiveRecord::Base
|
||||
belongs_to :category
|
||||
has_many :filter_criterias, as: :owner
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user