diff --git a/app/models/item.rb b/app/models/item.rb index a40c0358..a8f4f9c0 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -15,6 +15,8 @@ class Item key :is_published, Boolean, :required => true, :default => true, :index => true validates_format_of :name, :with => /^[a-zA-Z-_]+$/ + validates_uniqueness_of :name + belongs_to :parent, :class_name => "Item", :foreign_key => :parent_id many :children, :class_name => "Item", :foreign_key => :parent_id, :dependent => :destroy diff --git a/app/models/layout.rb b/app/models/layout.rb index b22a3c67..3b4f15b7 100644 --- a/app/models/layout.rb +++ b/app/models/layout.rb @@ -9,5 +9,6 @@ class Layout many :children, :class_name => "Item", :foreign_key => "layout_id", :dependent => :nullify validates_format_of :name, :with => /^[a-zA-Z-_]+$/ + validates_uniqueness_of :name end \ No newline at end of file diff --git a/app/models/snippet.rb b/app/models/snippet.rb index f9932480..688bf945 100644 --- a/app/models/snippet.rb +++ b/app/models/snippet.rb @@ -4,11 +4,12 @@ class Snippet key :name, String, :required => true, :index => true key :parent_name, String, :required => true, :index => true - key :parent_id, String, :required => true, :index => true + key :parent_id, ObjectId, :required => true, :index => true key_i18n :content, String before_validation :setup_default_value + validates_uniqueness_of :name, :scope => :parent_id protected