diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2004-12-16 13:42:21 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2004-12-16 13:42:21 +0000 |
commit | 87297f1c4be22c10de138709ba2d6c3ace4b0117 (patch) | |
tree | 7f2ec2e8aea4a907834bae84e9cfb51c8588fb67 /activerecord/lib/active_record/mixins | |
parent | 4d6bfc7a3615c68544ce10373e699eec1dfea669 (diff) | |
download | rails-87297f1c4be22c10de138709ba2d6c3ace4b0117.tar.gz rails-87297f1c4be22c10de138709ba2d6c3ace4b0117.tar.bz2 rails-87297f1c4be22c10de138709ba2d6c3ace4b0117.zip |
Added assumption that a Symbol-based scope should end in _id unless it does so already and that you can pass vanilla string-based scopes as a parameter
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@183 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/mixins')
-rw-r--r-- | activerecord/lib/active_record/mixins/list.rb | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/mixins/list.rb b/activerecord/lib/active_record/mixins/list.rb index a1d914d73c..f092347478 100644 --- a/activerecord/lib/active_record/mixins/list.rb +++ b/activerecord/lib/active_record/mixins/list.rb @@ -36,6 +36,8 @@ module ActiveRecord def acts_as_list(options = {}) configuration = { :column => "position", :scope => "1" } configuration.update(options) if options.is_a?(Hash) + + configuration[:scope] = "#{configuration[:scope]}_id".intern if configuration[:scope].is_a?(Symbol) && configuration[:scope].to_s !~ /_id$/ class_eval <<-EOV include InstanceMethods @@ -45,11 +47,7 @@ module ActiveRecord end def scope_condition - if configuration[:scope].is_a?(Symbol) - "#{configuration[:scope]} = \#{#{configuration[:scope]}}" - else - configuration[:scope] - end + "#{configuration[:scope].is_a?(Symbol) ? configuration[:scope].to_s + " = \#{" + configuration[:scope].to_s + "}" : configuration[:scope]}" end before_destroy :remove_from_list |