diff --git a/lib/draper/base.rb b/lib/draper/base.rb index 0a40e51..41948df 100644 --- a/lib/draper/base.rb +++ b/lib/draper/base.rb @@ -5,7 +5,7 @@ module Draper attr_accessor :context, :model DEFAULT_DENIED = Object.new.methods << :method_missing - FORCED_PROXY = [:to_param] + FORCED_PROXY = [:to_param, :id] FORCED_PROXY.each do |method| define_method method do |*args, &block| model.send method, *args, &block diff --git a/spec/base_spec.rb b/spec/base_spec.rb index 23b7fe8..7646d49 100644 --- a/spec/base_spec.rb +++ b/spec/base_spec.rb @@ -74,6 +74,11 @@ describe Draper::Base do Draper::Base.new(source).to_param.should == 1 end + it "should always proxy id" do + source.send :class_eval, "def id; 123456789; end" + Draper::Base.new(source).id.should == 123456789 + end + it "should not copy the .class, .inspect, or other existing methods" do source.class.should_not == subject.class source.inspect.should_not == subject.inspect