在具有全球化的导轨中,更新似乎忽略了空字符串字段

问题描述 投票:0回答:1

我是Rails的新手,我面临着一个奇怪的问题,而我的Google搜索并没有帮助我...

在Rails Guide入门之后,我已经实施了经典的Crud Ressource,我正在阻止“更新”部分:

http://guides.rubyonrails.org/getting_started.html#updating-articles

这是我的模型“ Devwork”的一部分:

class Devwork < ActiveRecord::Base validates :short_title, presence: true, uniqueness: true validates :title_fr, presence: true, allow_blank: false translates :title, :summary, :description globalize_accessors end
i正在使用

globalizeGEM持续局部数据,而globalize-accessor为助手。 控制器的更新操作是:

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

和形式的一部分:

<%= 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_title

title_fr
是强制性的,而存在另一个字段
title_en
则不是。我希望如果更新失败,我希望再次显示更新表单(通常是由于空的
title_fr
)。
但它行不通。即使是空的,更新也永远不会失败(永远不会输入)。实际上,如果一个字段为空,则该更新无能为力,仅更新非空字段。

我肯定错过了某个地方的东西,但我无法弄清楚……也许是全球化的小姐?

感谢您的帮助!

    
您可以尝试将其添加到您的globalize_accessors创建
render :edit

title_fr

方法:

title_fr
ruby-on-rails ruby crud globalize
1个回答
0
投票
模型的最终代码看起来像这样:

title_en
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.