parsley/app/models/tag.rb

33 lines
629 B
Ruby
Raw Normal View History

2016-10-14 12:47:24 -05:00
class Tag < ApplicationRecord
2016-10-20 15:48:33 -05:00
include TokenizedLike
has_and_belongs_to_many :recipes
2016-10-20 15:48:33 -05:00
scope :by_name, ->(names) { where(lowercase_name: Array.wrap(names).map { |n| n.downcase }) }
2016-10-14 12:47:24 -05:00
validates :name, presence: true, length: {maximum: 250}, uniqueness: { case_sensitive: false }
2016-10-20 15:48:33 -05:00
before_save :set_lowercase_name
def is?(tag_name)
tag_name.casecmp(self.name) == 0
end
def self.search(query)
token = query.to_s.strip
if token.empty?
Tag.none
else
Tag.matches_token(:name, token)
end
end
private
def set_lowercase_name
self.lowercase_name = self.name.downcase
end
2016-10-14 12:47:24 -05:00
end