diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2016-12-18 20:17:52 +0100 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2016-12-18 20:18:48 +0100 |
commit | b2672c739b9fe3a5b37249d899bdec9c3b9726cf (patch) | |
tree | 73fb490916bde8e4dcd74d04faecdb7959911436 /actionview/test | |
parent | a52413ac91bad22de1a25660848f862a0016ba74 (diff) | |
download | rails-b2672c739b9fe3a5b37249d899bdec9c3b9726cf.tar.gz rails-b2672c739b9fe3a5b37249d899bdec9c3b9726cf.tar.bz2 rails-b2672c739b9fe3a5b37249d899bdec9c3b9726cf.zip |
fields: support attributes not on model.
Ensure the support works like form_with.
Diffstat (limited to 'actionview/test')
-rw-r--r-- | actionview/test/template/form_helper/form_with_test.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/actionview/test/template/form_helper/form_with_test.rb b/actionview/test/template/form_helper/form_with_test.rb index 96b797992f..dd0883e071 100644 --- a/actionview/test/template/form_helper/form_with_test.rb +++ b/actionview/test/template/form_helper/form_with_test.rb @@ -935,6 +935,41 @@ class FormWithActsLikeFormForTest < FormWithTest end end + def test_fields_with_attributes_not_on_model + form_with(model: @post) do |f| + concat f.fields(:comment) { |c| + concat c.text_field :dont_exist_on_model + } + end + + expected = whole_form("/posts/123", method: :patch) do + '<input type="text" name="post[comment][dont_exist_on_model]">' + end + + assert_dom_equal expected, output_buffer + end + + def test_fields_with_attributes_not_on_model_deep_nested + @comment.save + form_with(scope: :posts) do |f| + f.fields("post[]", model: @post) do |f2| + f2.text_field(:id) + @post.comments.each do |comment| + concat f2.fields("comment[]", model: comment) { |c| + concat c.text_field(:dont_exist_on_model) + } + end + end + end + + expected = whole_form do + '<input name="posts[post][0][comment][1][dont_exist_on_model]" type="text">' + end + + assert_dom_equal expected, output_buffer + end + + def test_nested_fields @comment.body = "Hello World" form_with(model: @post) do |f| |