【发布时间】:2020-02-15 17:08:54
【问题描述】:
我有一个 Rails 项目,去年一直在运行,没有任何问题。我今天克隆了它并在本地(在虚拟机内)启动了实例,现在所有标签都显示如下:
<label object="#<Organization:0x000055ae1b1ea888>">organization</label>
而不是<label /> 标签。除了新的控制器和视图之外,没有任何重大变化。
生成它的代码:
<div class="uk-margin">
<%= f.label :name, class: "uk-form-label" %>
<div class="uk-form-controls">
<%= f.text_field :name, maxlength: 100, required: true, class: 'uk-input', placeholder: 'ACME Incorporated Inc' %>
</div>
</div>
我认为这可能是本地实例中的某些问题,所以我推动了生产,现在同样的事情正在那里发生。
有谁知道如何解决这个问题?
编辑:
这是完整的表格:
<%= form_for @organization, url: url do |f| %>
<div class="uk-margin">
<%= f.label :name %>
<div class="uk-form-controls">
<%= f.text_field :name, maxlength: 100, required: true, class: 'uk-input', placeholder: 'ACME Incorporated Inc' %>
</div>
</div>
<div class="uk-margin">
<%= f.label :tax_number %>
<div class="uk-form-controls">
<%= f.text_field :tax_number, maxlength: 100, required: false, class: 'uk-input', placeholder: '0000000000' %>
</div>
</div>
<%= f.submit 'Save' %>
<% end %>
更新:
这发生在所有形式中。
f.method(:label).source_location 的输出是:
/home/vagrant/lib/ruby/gems/2.5.0/gems/actionview-5.2.2/lib/action_view/helpers/form_helper.rb", 2025
更新 2:
切换到 form_with,标签会变成这样打印:
<label skip_default_ids="false" allow_method_names_outside_object="true" object="#<Merchant:0x00007ff24c079810>">Category</label>
【问题讨论】:
-
你能把完整的表格贴出来吗?
-
@DavidGeismar 更新了完整表格。问题是整个应用程序中的所有表单都在执行此操作,而不仅仅是这个。
-
查看
@organization.name中的内容 -
@DavidGeismar
@organization是模型实例,name是返回“Test Org”的字符串 -
你可以试试
f.method(:label).source_location看看有没有被重新定义。
标签: ruby-on-rails forms