Ruby on rails 在带有Globalize的Rails中,update似乎忽略了空字符串字段

Ruby on rails 在带有Globalize的Rails中,update似乎忽略了空字符串字段,ruby-on-rails,ruby,crud,globalize,Ruby On Rails,Ruby,Crud,Globalize,我对Rails非常陌生,我面临着一个奇怪的问题,我的谷歌搜索到目前为止对我没有帮助 在《Rails入门指南》之后,我实现了一个经典的CRUD ressource,我正在阻止“更新”部分: 这是我的“开发工作”模型的一部分: classdevwork

我对Rails非常陌生,我面临着一个奇怪的问题,我的谷歌搜索到目前为止对我没有帮助

在《Rails入门指南》之后,我实现了一个经典的CRUD ressource,我正在阻止“更新”部分:

这是我的“开发工作”模型的一部分:

classdevwork
我正在使用gem来持久化本地化数据,并为助手们提供支持

以下是控制器的更新操作:

class DevworksController < ApplicationController
  def update
    @devwork = Devwork.find(params[:id])

    if @devwork.update(devwork_params)
      redirect_to @devwork
    else
      render :edit
    end
  end

  private
  def devwork_params
    params.require(:devwork)
        .permit!
  end
end
class DevworksController
以及表格的一部分:

<%= form_for @devwork do |f| %>
<p>
  <%= f.label :short_title %>
  <%= f.text_field :short_title %>
</p>
<p>
  <%= f.label :title_fr %>
  <%= f.text_field :title_fr %>
  <%= f.label :title_en %>
  <%= f.text_field :title_en %>
</p>
<p>
  <%= f.submit %>
</p>
<% end %>


short\u title
title\u fr
是强制性的,而另一个字段
title\u en
则不是强制性的。如果更新失败(通常是因为空的
title\u fr
),我希望再次显示更新表单

但它不起作用。即使
title\u fr
为空,更新也不会失败(从不输入
render:edit
)。事实上,如果其中一个字段为空,则更新不会执行任何操作,它只更新非空字段

我肯定在什么地方漏掉了什么,但我想不出来。。。也许是全球化的误用

谢谢你的帮助

<%= form_for @devwork do |f| %>
<p>
  <%= f.label :short_title %>
  <%= f.text_field :short_title %>
</p>
<p>
  <%= f.label :title_fr %>
  <%= f.text_field :title_fr %>
  <%= f.label :title_en %>
  <%= f.text_field :title_en %>
</p>
<p>
  <%= f.submit %>
</p>
<% end %>