actionview 7.2.3 → 8.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +82 -108
- data/lib/action_view/dependency_tracker/erb_tracker.rb +36 -27
- data/lib/action_view/dependency_tracker/ruby_tracker.rb +2 -19
- data/lib/action_view/dependency_tracker/wildcard_resolver.rb +32 -0
- data/lib/action_view/dependency_tracker.rb +1 -0
- data/lib/action_view/gem_version.rb +3 -3
- data/lib/action_view/helpers/atom_feed_helper.rb +0 -2
- data/lib/action_view/helpers/cache_helper.rb +8 -0
- data/lib/action_view/helpers/date_helper.rb +3 -3
- data/lib/action_view/helpers/form_helper.rb +76 -75
- data/lib/action_view/helpers/form_options_helper.rb +25 -22
- data/lib/action_view/helpers/form_tag_helper.rb +20 -17
- data/lib/action_view/helpers/rendering_helper.rb +160 -50
- data/lib/action_view/helpers/sanitize_helper.rb +6 -0
- data/lib/action_view/helpers/tag_helper.rb +31 -41
- data/lib/action_view/helpers/tags/base.rb +11 -9
- data/lib/action_view/helpers/tags/check_box.rb +2 -2
- data/lib/action_view/helpers/tags/collection_check_boxes.rb +4 -3
- data/lib/action_view/helpers/tags/file_field.rb +4 -1
- data/lib/action_view/helpers/tags/label.rb +3 -10
- data/lib/action_view/helpers/tags/radio_button.rb +1 -1
- data/lib/action_view/helpers/tags/select_renderer.rb +1 -1
- data/lib/action_view/helpers/tags/text_area.rb +1 -1
- data/lib/action_view/helpers/tags/text_field.rb +1 -1
- data/lib/action_view/helpers/url_helper.rb +2 -4
- data/lib/action_view/layouts.rb +1 -1
- data/lib/action_view/record_identifier.rb +1 -1
- data/lib/action_view/render_parser/prism_render_parser.rb +13 -1
- data/lib/action_view/render_parser/ripper_render_parser.rb +10 -1
- data/lib/action_view/renderer/partial_renderer/collection_caching.rb +5 -1
- data/lib/action_view/renderer/streaming_template_renderer.rb +8 -2
- data/lib/action_view/rendering.rb +2 -3
- data/lib/action_view/template/handlers/erb/erubi.rb +1 -1
- data/lib/action_view/template/raw_file.rb +4 -0
- data/lib/action_view/template/resolver.rb +0 -1
- data/lib/action_view/template.rb +9 -4
- metadata +13 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 37987aa62646838570a7a8167d4f913d4b8019e7c03a756c34d6fb394f76ab5f
|
|
4
|
+
data.tar.gz: 22d8090b406f2bca0b4049b85df4d66740ef778a2d58f699d205154247fd7b03
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c140a8cf5c4ceed7879f29df22dbfb90adde9b111f3bf34c85f447e60b05841e819ceb0c7c699683505079368013570e336a7318cf6cca4174e1851606d1c542
|
|
7
|
+
data.tar.gz: 63ccdfbe1489d624b520aaf070f1b16c17b4f3a8c85b1f1f76dec9f0d51c74e7cb9868c6792fbebd9629251da14a7defd128f9754d6b849b262fc1a5d7174531
|
data/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,53 @@
|
|
|
1
|
-
## Rails
|
|
1
|
+
## Rails 8.0.5 (March 24, 2026) ##
|
|
2
|
+
|
|
3
|
+
* Fix encoding errors for string locals containing non-ASCII characters.
|
|
4
|
+
|
|
5
|
+
*Kataoka Katsuki*
|
|
6
|
+
|
|
7
|
+
* Fix collection caching to only forward `expires_in` argument if explicitly set.
|
|
8
|
+
|
|
9
|
+
*Pieter Visser*
|
|
10
|
+
|
|
11
|
+
* Fix `file_field` to join mime types with a comma when provided as Array
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
file_field(:article, :image, accept: ['image/png', 'image/gif', 'image/jpeg'])
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Now behaves likes:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
file_field(:article, :image, accept: 'image/png,image/gif,image/jpeg')
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
*Bogdan Gusiev*
|
|
24
|
+
|
|
25
|
+
* Fix strict locals parsing to handle multiline definitions.
|
|
26
|
+
|
|
27
|
+
*Said Kaldybaev*
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## Rails 8.0.4.1 (March 23, 2026) ##
|
|
31
|
+
|
|
32
|
+
* Skip blank attribute names in tag helpers to avoid generating invalid HTML.
|
|
33
|
+
|
|
34
|
+
[CVE-2026-33168]
|
|
35
|
+
|
|
36
|
+
*Mike Dalessio*
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Rails 8.0.4 (October 28, 2025) ##
|
|
40
|
+
|
|
41
|
+
* Restore `add_default_name_and_id` method.
|
|
42
|
+
|
|
43
|
+
*Hartley McGuire*
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Rails 8.0.3 (September 22, 2025) ##
|
|
47
|
+
|
|
48
|
+
* Fix label with `for` option not getting prefixed by form `namespace` value
|
|
49
|
+
|
|
50
|
+
*Abeid Ahmed*, *Hartley McGuire*
|
|
2
51
|
|
|
3
52
|
* Fix `javascript_include_tag` `type` option to accept either strings and symbols.
|
|
4
53
|
|
|
@@ -7,7 +56,7 @@
|
|
|
7
56
|
javascript_include_tag "application", type: "module"
|
|
8
57
|
```
|
|
9
58
|
|
|
10
|
-
Previously, only the string value was
|
|
59
|
+
Previously, only the string value was recognized.
|
|
11
60
|
|
|
12
61
|
*Jean Boussier*
|
|
13
62
|
|
|
@@ -15,6 +64,14 @@
|
|
|
15
64
|
|
|
16
65
|
*Jonathan Hefner*
|
|
17
66
|
|
|
67
|
+
|
|
68
|
+
## Rails 8.0.2.1 (August 13, 2025) ##
|
|
69
|
+
|
|
70
|
+
* No changes.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## Rails 8.0.2 (March 12, 2025) ##
|
|
74
|
+
|
|
18
75
|
* Respect `html_options[:form]` when `collection_checkboxes` generates the
|
|
19
76
|
hidden `<input>`.
|
|
20
77
|
|
|
@@ -48,6 +105,8 @@
|
|
|
48
105
|
|
|
49
106
|
*Jean Boussier*
|
|
50
107
|
|
|
108
|
+
## Rails 8.0.1 (December 13, 2024) ##
|
|
109
|
+
|
|
51
110
|
* Fix a crash in ERB template error highlighting when the error occurs on a
|
|
52
111
|
line in the compiled template that is past the end of the source template.
|
|
53
112
|
|
|
@@ -60,141 +119,56 @@
|
|
|
60
119
|
*Martin Emde*
|
|
61
120
|
|
|
62
121
|
|
|
63
|
-
## Rails
|
|
122
|
+
## Rails 8.0.0.1 (December 10, 2024) ##
|
|
64
123
|
|
|
65
124
|
* No changes.
|
|
66
125
|
|
|
67
126
|
|
|
68
|
-
## Rails
|
|
127
|
+
## Rails 8.0.0 (November 07, 2024) ##
|
|
69
128
|
|
|
70
129
|
* No changes.
|
|
71
130
|
|
|
72
131
|
|
|
73
|
-
## Rails
|
|
132
|
+
## Rails 8.0.0.rc2 (October 30, 2024) ##
|
|
74
133
|
|
|
75
134
|
* No changes.
|
|
76
135
|
|
|
77
136
|
|
|
78
|
-
## Rails
|
|
79
|
-
|
|
80
|
-
* No changes.
|
|
137
|
+
## Rails 8.0.0.rc1 (October 19, 2024) ##
|
|
81
138
|
|
|
139
|
+
* Remove deprecated support to passing a content to void tag elements on the `tag` builder.
|
|
82
140
|
|
|
83
|
-
|
|
141
|
+
*Rafael Mendonça França*
|
|
84
142
|
|
|
85
|
-
*
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
## Rails 7.2.1 (August 22, 2024) ##
|
|
89
|
-
|
|
90
|
-
* No changes.
|
|
143
|
+
* Remove deprecated support to passing `nil` to the `model:` argument of `form_with`.
|
|
91
144
|
|
|
145
|
+
*Rafael Mendonça França*
|
|
92
146
|
|
|
93
|
-
## Rails 7.2.0 (August 09, 2024) ##
|
|
94
147
|
|
|
95
|
-
|
|
148
|
+
## Rails 8.0.0.beta1 (September 26, 2024) ##
|
|
96
149
|
|
|
97
|
-
|
|
98
|
-
hash.
|
|
99
|
-
|
|
100
|
-
*Jean Boussier*
|
|
101
|
-
|
|
102
|
-
* Add queries count to template rendering instrumentation.
|
|
150
|
+
* Enable DependencyTracker to evaluate renders with trailing interpolation.
|
|
103
151
|
|
|
152
|
+
```erb
|
|
153
|
+
<%= render "maintenance_tasks/runs/info/#{run.status}" %>
|
|
104
154
|
```
|
|
105
|
-
# Before
|
|
106
|
-
Completed 200 OK in 3804ms (Views: 41.0ms | ActiveRecord: 33.5ms | Allocations: 112788)
|
|
107
|
-
|
|
108
|
-
# After
|
|
109
|
-
Completed 200 OK in 3804ms (Views: 41.0ms | ActiveRecord: 33.5ms (2 queries, 1 cached) | Allocations: 112788)
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
*fatkodima*
|
|
113
|
-
|
|
114
|
-
* Raise `ArgumentError` if `:renderable` object does not respond to `#render_in`.
|
|
115
|
-
|
|
116
|
-
*Sean Doyle*
|
|
117
|
-
|
|
118
|
-
* Add the `nonce: true` option for `stylesheet_link_tag` helper to support automatic nonce generation for Content Security Policy.
|
|
119
|
-
|
|
120
|
-
Works the same way as `javascript_include_tag nonce: true` does.
|
|
121
155
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
*Sean Doyle*
|
|
127
|
-
|
|
128
|
-
* Rename `ActionView::TestCase::Behavior::Content` to `ActionView::TestCase::Behavior::RenderedViewContent`.
|
|
129
|
-
|
|
130
|
-
Make `RenderedViewContent` inherit from `String`. Make private API with `:nodoc:`
|
|
131
|
-
|
|
132
|
-
*Sean Doyle*
|
|
133
|
-
|
|
134
|
-
* Deprecate passing `nil` as value for the `model:` argument to the `form_with` method.
|
|
135
|
-
|
|
136
|
-
*Collin Jilbert*
|
|
137
|
-
|
|
138
|
-
* Alias `field_set_tag` helper to `fieldset_tag` to match `<fieldset>` element.
|
|
139
|
-
|
|
140
|
-
*Sean Doyle*
|
|
141
|
-
|
|
142
|
-
* Deprecate passing content to void elements when using `tag.br` type tag builders.
|
|
156
|
+
Previously, the DependencyTracker would ignore this render, but now it will
|
|
157
|
+
mark all partials in the "maintenance_tasks/runs/info" folder as
|
|
158
|
+
dependencies.
|
|
143
159
|
|
|
144
160
|
*Hartley McGuire*
|
|
145
161
|
|
|
146
|
-
*
|
|
147
|
-
|
|
148
|
-
*Earlopain*
|
|
149
|
-
|
|
150
|
-
* Automatically discard the implicit locals injected by collection rendering for template that can't accept them.
|
|
151
|
-
|
|
152
|
-
When rendering a collection, two implicit variables are injected, which breaks templates with strict locals.
|
|
153
|
-
|
|
154
|
-
Now they are only passed if the template will actually accept them.
|
|
162
|
+
* Rename `text_area` methods into `textarea`
|
|
155
163
|
|
|
156
|
-
|
|
164
|
+
Old names are still available as aliases.
|
|
157
165
|
|
|
158
|
-
*
|
|
159
|
-
|
|
160
|
-
*Hartley McGuire*, *Ryunosuke Sato*
|
|
166
|
+
*Sean Doyle*
|
|
161
167
|
|
|
162
|
-
*
|
|
168
|
+
* Rename `check_box*` methods into `checkbox*`.
|
|
163
169
|
|
|
164
|
-
|
|
165
|
-
it would instead return the entire buffer.
|
|
170
|
+
Old names are still available as aliases.
|
|
166
171
|
|
|
167
172
|
*Jean Boussier*
|
|
168
173
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
This fix was already landed in >= 7.0.4.3, < 7.1.0.
|
|
172
|
-
[[CVE-2023-23913](https://github.com/advisories/GHSA-xp5h-f8jf-rc8q)]
|
|
173
|
-
|
|
174
|
-
*Ryunosuke Sato*
|
|
175
|
-
|
|
176
|
-
* Added validation for HTML tag names in the `tag` and `content_tag` helper method.
|
|
177
|
-
|
|
178
|
-
The `tag` and `content_tag` method now checks that the provided tag name adheres to the HTML
|
|
179
|
-
specification. If an invalid HTML tag name is provided, the method raises an `ArgumentError`
|
|
180
|
-
with an appropriate error message.
|
|
181
|
-
|
|
182
|
-
Examples:
|
|
183
|
-
|
|
184
|
-
```ruby
|
|
185
|
-
# Raises ArgumentError: Invalid HTML5 tag name: 12p
|
|
186
|
-
content_tag("12p") # Starting with a number
|
|
187
|
-
|
|
188
|
-
# Raises ArgumentError: Invalid HTML5 tag name: ""
|
|
189
|
-
content_tag("") # Empty tag name
|
|
190
|
-
|
|
191
|
-
# Raises ArgumentError: Invalid HTML5 tag name: div/
|
|
192
|
-
tag("div/") # Contains a solidus
|
|
193
|
-
|
|
194
|
-
# Raises ArgumentError: Invalid HTML5 tag name: "image file"
|
|
195
|
-
tag("image file") # Contains a space
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
*Akhil G Krishnan*
|
|
199
|
-
|
|
200
|
-
Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actionview/CHANGELOG.md) for previous changes.
|
|
174
|
+
Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actionview/CHANGELOG.md) for previous changes.
|
|
@@ -74,7 +74,7 @@ module ActionView
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
def dependencies
|
|
77
|
-
render_dependencies + explicit_dependencies
|
|
77
|
+
WildcardResolver.new(@view_paths, render_dependencies + explicit_dependencies).resolve
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
attr_reader :name, :template
|
|
@@ -90,15 +90,15 @@ module ActionView
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
def render_dependencies
|
|
93
|
-
|
|
93
|
+
dependencies = []
|
|
94
94
|
render_calls = source.split(/\brender\b/).drop(1)
|
|
95
95
|
|
|
96
96
|
render_calls.each do |arguments|
|
|
97
|
-
add_dependencies(
|
|
98
|
-
add_dependencies(
|
|
97
|
+
add_dependencies(dependencies, arguments, LAYOUT_DEPENDENCY)
|
|
98
|
+
add_dependencies(dependencies, arguments, RENDER_ARGUMENTS)
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
dependencies
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def add_dependencies(render_dependencies, arguments, pattern)
|
|
@@ -116,12 +116,37 @@ module ActionView
|
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
def add_static_dependency(dependencies, dependency, quote_type)
|
|
119
|
-
if quote_type == '"'
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
if quote_type == '"' && dependency.include?('#{')
|
|
120
|
+
scanner = StringScanner.new(dependency)
|
|
121
|
+
|
|
122
|
+
wildcard_dependency = +""
|
|
123
|
+
|
|
124
|
+
while !scanner.eos?
|
|
125
|
+
if scanner.scan_until(/\#{/)
|
|
126
|
+
unmatched_brackets = 1
|
|
127
|
+
wildcard_dependency << scanner.pre_match
|
|
128
|
+
|
|
129
|
+
while unmatched_brackets > 0 && !scanner.eos?
|
|
130
|
+
found = scanner.scan_until(/[{}]/)
|
|
131
|
+
return unless found
|
|
132
|
+
|
|
133
|
+
case scanner.matched
|
|
134
|
+
when "{"
|
|
135
|
+
unmatched_brackets += 1
|
|
136
|
+
when "}"
|
|
137
|
+
unmatched_brackets -= 1
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
wildcard_dependency << "*"
|
|
142
|
+
else
|
|
143
|
+
wildcard_dependency << scanner.rest
|
|
144
|
+
scanner.terminate
|
|
145
|
+
end
|
|
146
|
+
end
|
|
123
147
|
|
|
124
|
-
|
|
148
|
+
dependencies << wildcard_dependency
|
|
149
|
+
elsif dependency
|
|
125
150
|
if dependency.include?("/")
|
|
126
151
|
dependencies << dependency
|
|
127
152
|
else
|
|
@@ -130,24 +155,8 @@ module ActionView
|
|
|
130
155
|
end
|
|
131
156
|
end
|
|
132
157
|
|
|
133
|
-
def resolve_directories(wildcard_dependencies)
|
|
134
|
-
return [] unless @view_paths
|
|
135
|
-
return [] if wildcard_dependencies.empty?
|
|
136
|
-
|
|
137
|
-
# Remove trailing "/*"
|
|
138
|
-
prefixes = wildcard_dependencies.map { |query| query[0..-3] }
|
|
139
|
-
|
|
140
|
-
@view_paths.flat_map(&:all_template_paths).uniq.filter_map { |path|
|
|
141
|
-
path.to_s if prefixes.include?(path.prefix)
|
|
142
|
-
}.sort
|
|
143
|
-
end
|
|
144
|
-
|
|
145
158
|
def explicit_dependencies
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
wildcards, explicits = dependencies.partition { |dependency| dependency.end_with?("/*") }
|
|
149
|
-
|
|
150
|
-
(explicits + resolve_directories(wildcards)).uniq
|
|
159
|
+
source.scan(EXPLICIT_DEPENDENCY).flatten.uniq
|
|
151
160
|
end
|
|
152
161
|
end
|
|
153
162
|
end
|
|
@@ -10,7 +10,7 @@ module ActionView
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def dependencies
|
|
13
|
-
render_dependencies + explicit_dependencies
|
|
13
|
+
WildcardResolver.new(view_paths, render_dependencies + explicit_dependencies).resolve
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def self.supports_view_paths? # :nodoc:
|
|
@@ -31,29 +31,12 @@ module ActionView
|
|
|
31
31
|
compiled_source = template.handler.call(template, template.source)
|
|
32
32
|
|
|
33
33
|
@parser_class.new(@name, compiled_source).render_calls.filter_map do |render_call|
|
|
34
|
-
next if render_call.end_with?("/_")
|
|
35
34
|
render_call.gsub(%r|/_|, "/")
|
|
36
35
|
end
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
def explicit_dependencies
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
wildcards, explicits = dependencies.partition { |dependency| dependency.end_with?("/*") }
|
|
43
|
-
|
|
44
|
-
(explicits + resolve_directories(wildcards)).uniq
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def resolve_directories(wildcard_dependencies)
|
|
48
|
-
return [] unless view_paths
|
|
49
|
-
return [] if wildcard_dependencies.empty?
|
|
50
|
-
|
|
51
|
-
# Remove trailing "/*"
|
|
52
|
-
prefixes = wildcard_dependencies.map { |query| query[0..-3] }
|
|
53
|
-
|
|
54
|
-
view_paths.flat_map(&:all_template_paths).uniq.filter_map { |path|
|
|
55
|
-
path.to_s if prefixes.include?(path.prefix)
|
|
56
|
-
}.sort
|
|
39
|
+
template.source.scan(EXPLICIT_DEPENDENCY).flatten.uniq
|
|
57
40
|
end
|
|
58
41
|
end
|
|
59
42
|
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ActionView
|
|
4
|
+
class DependencyTracker # :nodoc:
|
|
5
|
+
class WildcardResolver # :nodoc:
|
|
6
|
+
def initialize(view_paths, dependencies)
|
|
7
|
+
@view_paths = view_paths
|
|
8
|
+
|
|
9
|
+
@wildcard_dependencies, @explicit_dependencies =
|
|
10
|
+
dependencies.partition { |dependency| dependency.end_with?("/*") }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def resolve
|
|
14
|
+
return explicit_dependencies.uniq if !view_paths || wildcard_dependencies.empty?
|
|
15
|
+
|
|
16
|
+
(explicit_dependencies + resolved_wildcard_dependencies).uniq
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
attr_reader :explicit_dependencies, :wildcard_dependencies, :view_paths
|
|
21
|
+
|
|
22
|
+
def resolved_wildcard_dependencies
|
|
23
|
+
# Remove trailing "/*"
|
|
24
|
+
prefixes = wildcard_dependencies.map { |query| query[0..-3] }
|
|
25
|
+
|
|
26
|
+
view_paths.flat_map(&:all_template_paths).uniq.filter_map { |path|
|
|
27
|
+
path.to_s if prefixes.include?(path.prefix)
|
|
28
|
+
}.sort
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -93,6 +93,14 @@ module ActionView
|
|
|
93
93
|
# render partial: 'attachments/attachment', collection: group_of_attachments
|
|
94
94
|
# render partial: 'documents/document', collection: @project.documents.where(published: true).order('created_at')
|
|
95
95
|
#
|
|
96
|
+
# One last type of dependency can be determined implicitly:
|
|
97
|
+
#
|
|
98
|
+
# render "maintenance_tasks/runs/info/#{run.status}"
|
|
99
|
+
#
|
|
100
|
+
# Because the value passed to render ends in interpolation, Action View
|
|
101
|
+
# will mark all partials within the "maintenance_tasks/runs/info" folder as
|
|
102
|
+
# dependencies.
|
|
103
|
+
#
|
|
96
104
|
# === Explicit dependencies
|
|
97
105
|
#
|
|
98
106
|
# Sometimes you'll have template dependencies that can't be derived at all. This is typically
|
|
@@ -1235,7 +1235,7 @@ module ActionView
|
|
|
1235
1235
|
class FormBuilder
|
|
1236
1236
|
# Wraps ActionView::Helpers::DateHelper#date_select for form builders:
|
|
1237
1237
|
#
|
|
1238
|
-
# <%=
|
|
1238
|
+
# <%= form_with model: @person do |f| %>
|
|
1239
1239
|
# <%= f.date_select :birth_date %>
|
|
1240
1240
|
# <%= f.submit %>
|
|
1241
1241
|
# <% end %>
|
|
@@ -1247,7 +1247,7 @@ module ActionView
|
|
|
1247
1247
|
|
|
1248
1248
|
# Wraps ActionView::Helpers::DateHelper#time_select for form builders:
|
|
1249
1249
|
#
|
|
1250
|
-
# <%=
|
|
1250
|
+
# <%= form_with model: @race do |f| %>
|
|
1251
1251
|
# <%= f.time_select :average_lap %>
|
|
1252
1252
|
# <%= f.submit %>
|
|
1253
1253
|
# <% end %>
|
|
@@ -1259,7 +1259,7 @@ module ActionView
|
|
|
1259
1259
|
|
|
1260
1260
|
# Wraps ActionView::Helpers::DateHelper#datetime_select for form builders:
|
|
1261
1261
|
#
|
|
1262
|
-
# <%=
|
|
1262
|
+
# <%= form_with model: @person do |f| %>
|
|
1263
1263
|
# <%= f.datetime_select :last_request_at %>
|
|
1264
1264
|
# <%= f.submit %>
|
|
1265
1265
|
# <% end %>
|