diff --git a/app/models/.keep b/app/models/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/app/models/recipe.rb b/app/models/recipe.rb index be39818..91635e3 100644 --- a/app/models/recipe.rb +++ b/app/models/recipe.rb @@ -4,6 +4,8 @@ class Recipe < ApplicationRecord has_many :recipe_steps, -> { order :sort_order }, inverse_of: :recipe, dependent: :destroy belongs_to :user + has_and_belongs_to_many :tags + scope :undeleted, -> { where('deleted <> ? OR deleted IS NULL', true) } scope :not_log, -> { where('is_log <> ? OR is_log IS NULL', true) } scope :active, -> { undeleted.not_log } diff --git a/app/models/tag.rb b/app/models/tag.rb new file mode 100644 index 0000000..acb4e13 --- /dev/null +++ b/app/models/tag.rb @@ -0,0 +1,5 @@ +class Tag < ApplicationRecord + + validates :name, presence: true, length: {maximum: 250}, uniqueness: { case_sensitive: false } + +end diff --git a/db/migrate/20161014173138_create_tags.rb b/db/migrate/20161014173138_create_tags.rb new file mode 100644 index 0000000..5ba574c --- /dev/null +++ b/db/migrate/20161014173138_create_tags.rb @@ -0,0 +1,14 @@ +class CreateTags < ActiveRecord::Migration[5.0] + def change + create_table :tags do |t| + t.string :name, index: {unique: true} + + t.timestamps + end + + create_table :recipes_tags, id: false do |t| + t.integer :recipe_id, index: true + t.integer :tag_id, index: true + end + end +end diff --git a/spec/factories/tags.rb b/spec/factories/tags.rb new file mode 100644 index 0000000..c50df25 --- /dev/null +++ b/spec/factories/tags.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :tag do + name "MyString" + end +end diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb new file mode 100644 index 0000000..0d0fcb0 --- /dev/null +++ b/spec/models/tag_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Tag, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end