aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/base.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-11-19 06:47:26 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-11-19 06:47:26 +0000
commitb51c3399eb0cbf07e64bd7a33d176eae3010d5c0 (patch)
tree85d4b0c59dbc72d36e3c2e59ed21bbc34acd0a17 /activerecord/lib/active_record/base.rb
parentb3c65bc8490b072a0d314aa3858c680fc6d67e35 (diff)
downloadrails-b51c3399eb0cbf07e64bd7a33d176eae3010d5c0.tar.gz
rails-b51c3399eb0cbf07e64bd7a33d176eae3010d5c0.tar.bz2
rails-b51c3399eb0cbf07e64bd7a33d176eae3010d5c0.zip
Don't generate read methods for columns whose names are not valid ruby method names. References #2946.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3089 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/base.rb')
-rwxr-xr-xactiverecord/lib/active_record/base.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 550b657102..2f7812d17b 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -1563,7 +1563,16 @@ module ActiveRecord #:nodoc:
self.class.read_methods << attr_name
end
- self.class.class_eval("def #{symbol}; #{access_code}; end")
+ begin
+ self.class.class_eval("def #{symbol}; #{access_code}; end")
+ rescue SyntaxError => err
+ self.class.read_methods.delete(attr_name)
+ if logger
+ logger.warn "Exception occured during reader method compilation."
+ logger.warn "Maybe #{attr_name} is not a valid Ruby identifier?"
+ logger.warn "#{err.message}"
+ end
+ end
end
# Returns true if the attribute is of a text column and marked for serialization.