我有一个Rails项目,在过去的一年中一直没有任何问题。我今天克隆了它,并在本地(在VM内)启动了实例,现在所有标签都显示如下:
<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 %>
UPDATE:
这会以各种形式发生。
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
UPDATE 2:
切换到form_with,结果是这样打印标签:
<label skip_default_ids="false" allow_method_names_outside_object="true" object="#<Merchant:0x00007ff24c079810>">Category</label>
根据当前的actionview文档,您获得的输出是预期的输出(选中此link)。此行为有可能从一个版本更改为另一个版本。检查在上次部署期间是否更新了任何可能影响此更改的gem。