首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅当属性存在时验证属性(仅当用户填写时)

仅当属性存在时验证属性(仅当用户填写时)
EN

Stack Overflow用户
提问于 2011-10-24 02:08:40
回答 3查看 34.3K关注 0票数 64

只有当某些属性不为空时,我才需要验证它们。

例如,用户可能有一个徽标。如果我们尝试加载它-验证应该会起作用。如果我们只是更新没有徽标的用户数据,则必须跳过验证。

现在我有了:

该表单有两个文件可供选择。一个标志,第二个头像。这两个属性都是用户模型的一部分。在用户模型a中进行验证:

代码语言:javascript
运行
复制
validates_preference_of :logo_file_name, :message=>I18n.t("...")
validates_format_of :logo_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("...")
validates_preference_of :avatar_file_name, :message=>I18n.t("...")
validates_format_of :avatar_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("...")

在这种情况下,如果我们尝试创建一个没有选定徽标和头像的新用户,将会出现错误(我们的验证)。我尝试更改验证并添加":on => :update“,如下所示:

代码语言:javascript
运行
复制
validates_preference_of :logo_file_name, :message=>I18n.t("..."), :on => :update
validates_format_of :logo_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("..."), :on => :update
validates_preference_of :avatar_file_name, :message=>I18n.t("..."), :on => :update
validates_format_of :avatar_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("..."), :on => :update

现在我可以创建没有选定的徽标和头像的用户,但如果我尝试编辑用户并尝试仅上传徽标-我有头像的验证错误。如果我为头像和徽标选择文件,请留空-我对徽标有验证错误。

如何对要更改的属性运行验证ony?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7868067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档