app/models/constructor_pages/field.rb in constructor-pages-0.3.2 vs app/models/constructor_pages/field.rb in constructor-pages-0.3.3
- old
+ new
@@ -1,61 +1,53 @@
# encoding: utf-8
module ConstructorPages
class Field < ActiveRecord::Base
- attr_accessible :name, :code_name, :type_value, :template_id
+ attr_accessible :name, :code_name, :type_value, :template_id, :template
validates_presence_of :name
-
+ validates_uniqueness_of :code_name, :scope => :template_id
validate :method_uniqueness
- validates_uniqueness_of :code_name, :scope => :template_id
-
after_create :create_page_fields
after_destroy :destroy_page_fields
belongs_to :template
- has_one :string_type, :class_name => "Types::StringType"
- has_one :integer_type, :class_name => "Types::IntegerType"
- has_one :float_type, :class_name => "Types::FloatType"
- has_one :boolean_type, :class_name => "Types::BooleanType"
- has_one :text_type, :class_name => "Types::TextType"
- has_one :date_type, :class_name => "Types::DateType"
- has_one :html_type, :class_name => "Types::HtmlType"
- has_one :image_type, :class_name => "Types::ImageType"
+ has_one :string_type, class_name: 'Types::StringType'
+ has_one :integer_type, class_name: 'Types::IntegerType'
+ has_one :float_type, class_name: 'Types::FloatType'
+ has_one :boolean_type, class_name: 'Types::BooleanType'
+ has_one :text_type, class_name: 'Types::TextType'
+ has_one :date_type, class_name: 'Types::DateType'
+ has_one :html_type, class_name: 'Types::HtmlType'
+ has_one :image_type, class_name: 'Types::ImageType'
- acts_as_list :scope => :template_id
- default_scope :order => :position
+ acts_as_list scope: :template_id
+ default_scope order: :position
private
def method_uniqueness
if Page.first.respond_to?(code_name) \
or Page.first.respond_to?(code_name.pluralize) \
or Page.first.respond_to?(code_name.singularize) \
or template.self_and_ancestors.map{|t| t.code_name unless t.code_name == code_name}.include?(code_name.pluralize) \
- or template.self_and_ancestors.map{|t| t.code_name t.code_name == code_name}.include?(code_name.singularize) \
- or template.descendants.map{|t| t.code_name t.code_name == code_name}.include?(code_name.pluralize) \
- or template.descendants.map{|t| t.code_name t.code_name == code_name}.include?(code_name.singularize)
- errors.add(:base, "Такой метод уже используется")
+ or template.self_and_ancestors.map{|t| t.code_name unless t.code_name == code_name}.include?(code_name.singularize) \
+ or template.descendants.map{|t| t.code_name unless t.code_name == code_name}.include?(code_name.pluralize) \
+ or template.descendants.map{|t| t.code_name unless t.code_name == code_name}.include?(code_name.singularize)
+ errors.add(:base, 'Такой метод уже используется')
end
end
def create_page_fields
self.template.pages.each do |page|
- "constructor_pages/types/#{type_value}_type".classify.constantize.create(
- :page_id => page.id,
- :field_id => id
- )
+ "constructor_pages/types/#{type_value}_type".classify.constantize.create page_id: page.id, field_id: id
end
end
def destroy_page_fields
self.template.pages.each do |page|
- "constructor_pages/types/#{type_value}_type".classify.constantize.destroy_all(
- :page_id => page.id,
- :field_id => id
- )
+ "constructor_pages/types/#{type_value}_type".classify.constantize.destroy_all page_id: page.id, field_id: id
end
end
end
end
\ No newline at end of file