custom_error_message
Advanced tools
@@ -5,3 +5,3 @@ # -*- encoding: utf-8 -*- | ||
| s.name = 'custom_error_message' | ||
| s.version = "1.1.0.pre2" | ||
| s.version = "1.1.0.pre3" | ||
@@ -20,2 +20,2 @@ s.platform = Gem::Platform::RUBY | ||
| s.require_paths = ["lib"] | ||
| end | ||
| end |
@@ -7,7 +7,17 @@ module ActiveRecord | ||
| def generate_full_message(options = {}) | ||
| keys = [ | ||
| :"full_messages.#{@message}", | ||
| :'full_messages.format' | ||
| ] | ||
| if self.message =~ /^\^/ | ||
| keys = ["{{message}}"] | ||
| keys.push('{{message}}') | ||
| options.merge!(:default => self.message[1..-1]) | ||
| else | ||
| keys.push('%{attribute} %{message}') | ||
| options.merge!(:default => keys, :message => self.message) | ||
| end | ||
| I18n.translate(keys.shift, options) | ||
@@ -14,0 +24,0 @@ end |
@@ -9,2 +9,3 @@ require 'rubygems' | ||
| validates_presence_of :name | ||
| validates_presence_of :email, :message => "^Your email is invalid" | ||
@@ -29,3 +30,3 @@ | ||
| describe "validating attributes" do | ||
| describe "error messages" do | ||
| before do | ||
@@ -36,13 +37,22 @@ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") | ||
| it "should return the message specified without a prefix" do | ||
| @user = User.create | ||
| @user.errors.full_messages.should include "Your email is invalid" | ||
| describe "with standard messages" do | ||
| it "should return a standard error message" do | ||
| @user = User.create | ||
| @user.errors.full_messages.should include "Name can't be blank" | ||
| end | ||
| end | ||
| describe "validating nested attributes" do | ||
| it "should return the message specified without a prefix" do | ||
| @user = User.create(:roles_attributes => [{}]) | ||
| @user.errors.full_messages.should include "You must enter a role" | ||
| describe "with custom messages" do | ||
| it "should return the full message specified" do | ||
| @user = User.create | ||
| @user.errors.full_messages.should include "Your email is invalid" | ||
| end | ||
| end | ||
| describe "on nested attributes" do | ||
| it "should return the full message specified" do | ||
| @user = User.create(:roles_attributes => [{}]) | ||
| @user.errors.full_messages.should include "You must enter a role" | ||
| end | ||
| end | ||
| end | ||
| end |
| ActiveRecord::Schema.define(:version => 0) do | ||
| create_table :users, :force => true do |t| | ||
| t.string :email, :password, :roles | ||
| t.string :name, :email, :password, :roles | ||
| end | ||
@@ -5,0 +5,0 @@ |