Rails 3 到 Rails 4 升级未定义的方法 to_input_field_tag
Rails 3 to Rails 4 upgrade undefined method to_input_field_tag
我正在将 Rails 3 应用程序升级到 Rails 4,我在尝试启动 Rails 服务器时收到错误消息 undefined method to_input_field_tag for class ActionView::Helpers::InstanceTag NameError
.
查看 API Dock http://apidock.com/rails/ActionView/Helpers/InstanceTag/to_input_field_tag 它显示此方法已弃用或移动。
这是否已移动或在 Rails 4 中有什么等效替代品?
该方法已被弃用,似乎
ActionView::Helpers::InstanceTag
已重构为:
ActionView::Helpers::ActiveModelInstanceTag
比较 Rails 3 和 4 之间的源代码,输入字段的呈现方式似乎发生了变化:
# ~/rails-3-2-stable/actionpack/lib/action_view/helpers/form_helper.rb
def text_field(object_name, method, options = {})
InstanceTag.new(object_name, method, self, options.delete(:object)).to_input_field_tag("text", options)
end
更改为:
# ~/rails-4-2-stable/actionview/lib/action_view/helpers/form_helper.rb
def text_field(object_name, method, options = {})
Tags::TextField.new(object_name, method, self, options).render
end
在升级到 Rails 4 的过程中,似乎有许多 gem 受到此更改的影响。因此,如果此错误来自 gem,请查看如果 Rails 4 版本可用。
如果这段代码是您编写的,那么您可以尝试使用新标签 class,具体取决于您要完成的具体目标。
我正在将 Rails 3 应用程序升级到 Rails 4,我在尝试启动 Rails 服务器时收到错误消息 undefined method to_input_field_tag for class ActionView::Helpers::InstanceTag NameError
.
查看 API Dock http://apidock.com/rails/ActionView/Helpers/InstanceTag/to_input_field_tag 它显示此方法已弃用或移动。
这是否已移动或在 Rails 4 中有什么等效替代品?
该方法已被弃用,似乎
ActionView::Helpers::InstanceTag
已重构为:
ActionView::Helpers::ActiveModelInstanceTag
比较 Rails 3 和 4 之间的源代码,输入字段的呈现方式似乎发生了变化:
# ~/rails-3-2-stable/actionpack/lib/action_view/helpers/form_helper.rb
def text_field(object_name, method, options = {})
InstanceTag.new(object_name, method, self, options.delete(:object)).to_input_field_tag("text", options)
end
更改为:
# ~/rails-4-2-stable/actionview/lib/action_view/helpers/form_helper.rb
def text_field(object_name, method, options = {})
Tags::TextField.new(object_name, method, self, options).render
end
在升级到 Rails 4 的过程中,似乎有许多 gem 受到此更改的影响。因此,如果此错误来自 gem,请查看如果 Rails 4 版本可用。
如果这段代码是您编写的,那么您可以尝试使用新标签 class,具体取决于您要完成的具体目标。