aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/test/activerecord
diff options
context:
space:
mode:
authorTravis Grathwell <tjgrathwell@gmail.com>2014-12-29 18:12:03 -0800
committerEugenia Dellapenna <eugenia.dellapenna@gmail.com>2014-12-29 18:12:03 -0800
commit3efd90ac5b15d376bc5780d08d6e07d5a2b50ff1 (patch)
treea33525691bcc0fb0a3650c2953352f7da73ff903 /actionview/test/activerecord
parent241ccaef88e494657ff4121ef31d73160237fd6c (diff)
downloadrails-3efd90ac5b15d376bc5780d08d6e07d5a2b50ff1.tar.gz
rails-3efd90ac5b15d376bc5780d08d6e07d5a2b50ff1.tar.bz2
rails-3efd90ac5b15d376bc5780d08d6e07d5a2b50ff1.zip
Fix form_for to work with objects that implement to_model
Previously, if you tried to use form_for with a presenter object that implements to_model, it would crash in action_dispatch/routing/polymorphic_routes.rb when asking the presenter whether it is .persisted? Now, we always ask .persisted? of the to_model object instead. This seems to been an issue since 1606fc9d840da869a60213bc889da6fcf1fdc431 Signed-off-by: Eugenia Dellapenna <eugenia.dellapenna@gmail.com>
Diffstat (limited to 'actionview/test/activerecord')
-rw-r--r--actionview/test/activerecord/polymorphic_routes_test.rb20
1 files changed, 15 insertions, 5 deletions
diff --git a/actionview/test/activerecord/polymorphic_routes_test.rb b/actionview/test/activerecord/polymorphic_routes_test.rb
index 5842b775bb..8e1ed2776d 100644
--- a/actionview/test/activerecord/polymorphic_routes_test.rb
+++ b/actionview/test/activerecord/polymorphic_routes_test.rb
@@ -25,15 +25,17 @@ class Series < ActiveRecord::Base
self.table_name = 'projects'
end
-class ModelDelegator < ActiveRecord::Base
- self.table_name = 'projects'
-
+class ModelDelegator
def to_model
ModelDelegate.new
end
end
class ModelDelegate
+ def persisted?
+ true
+ end
+
def model_name
ActiveModel::Name.new(self.class)
end
@@ -605,13 +607,18 @@ class PolymorphicRoutesTest < ActionController::TestCase
end
end
- def test_routing_a_to_model_delegate
+ def test_routing_to_a_model_delegate
with_test_routes do
- @delegator.save
assert_url "http://example.com/model_delegates/overridden", @delegator
end
end
+ def test_nested_routing_to_a_model_delegate
+ with_test_routes do
+ assert_url "http://example.com/foo/model_delegates/overridden", [:foo, @delegator]
+ end
+ end
+
def with_namespaced_routes(name)
with_routing do |set|
set.draw do
@@ -645,6 +652,9 @@ class PolymorphicRoutesTest < ActionController::TestCase
end
resources :series
resources :model_delegates
+ namespace :foo do
+ resources :model_delegates
+ end
end
extend @routes.url_helpers