【问题标题】:Rails: undefined method text_field_tagRails:未定义的方法 text_field_tag
【发布时间】:2011-07-06 08:02:25
【问题描述】:

如果我使用 text_field,我的 ERB 文件可以正常工作,但如果我切换到 text_field_tag,我会收到此错误:

undefined method `text_field_tag' for #<ActionView::Helpers::FormBuilder:0x00000001f6fd50>

这是有效的代码:

<%= f.text_field mystring %>

以及不起作用的代码:

<%= f.text_field_tag mystring %>

text_field_tag 已记录在案。如何让它发挥作用?我需要require 什么的吗?

【问题讨论】:

  • text_field_tag 不是 FormBuilder 的一种方法 - 它是一个类似于 link_to 的 view_helper,所以只需使用 text_field_tag :)

标签: ruby-on-rails-3 erb


【解决方案1】:

供您参考,text_field_tag 来自 ActionView::Helpers::FormTagHelper,其中指出:

提供多种方法 创建不依赖的表单标签 在分配给的 Active Record 对象上 像 FormHelper 这样的模板。 相反,您提供名称和 手动设置值。

由于这是一个不依赖于活动记录对象的助手,因此您不能为“f”对象调用此方法。这是一个辅助方法,应该像这样调用:

<%= text_field_tag "whatever you want to write" %>

【讨论】:

    【解决方案2】:

    需要删除 f:

    <%= text_field_tag mystring %>
    

    我猜 text_field_tag 不依赖 form_for。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 2013-02-05
    • 1970-01-01
    • 2013-08-30
    • 2015-10-03
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多