Index: app/models/setting.rb =================================================================== --- app/models/setting.rb (Revision 12347) +++ app/models/setting.rb (Arbeitskopie) @@ -83,7 +83,7 @@ validates_uniqueness_of :name validates_inclusion_of :name, :in => @@available_settings.keys - validates_numericality_of :value, :only_integer => true, :if => Proc.new { |setting| @@available_settings[setting.name]['format'] == 'int' } + validates_numericality_of :value, :only_integer => true, :if => Proc.new { |setting| @@available_settings.has_key?(setting) ? @@available_settings[setting.name]['format'] == 'int' : false} # Hash used to cache setting values @cached_settings = {} Index: test/unit/setting_test.rb =================================================================== --- test/unit/setting_test.rb (Revision 12347) +++ test/unit/setting_test.rb (Arbeitskopie) @@ -87,4 +87,9 @@ assert_equal [10, 25, 50], Setting.per_page_options_array end end + + def test_insert_name_not_in_settings_yml + setting = Setting.new(:name => "does_not_exist", :value => "should_not_be_allowed" ) + assert !setting.save + end end