问题标签 [validates-associated]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 3 的更好的 validates_associated 方法?
Rails 3 包括validates_associated
在保存嵌套模型时自动调用的。该方法的问题是消息很糟糕 - “模型无效”
对于 Rails 2,有一些帖子针对此问题进行了攻击:
- http://rpheath.com/posts/412-a-better-validates-associated
- http://pivotallabs.com/users/nick/blog/articles/359-alias-method-chain-validates-associated-informative-error-message
可能还有更多。最好有这些帖子中描述的更好的版本,它与 Rails 3 兼容。主要的改进是包括相关模型失败的原因。
ruby-on-rails - validates_associated 不检查关联的存在
谁能弄清楚这里发生了什么?我能够让我的代码按照我想要的方式工作,但我无法弄清楚为什么 validates_associated 没有按我的预期工作。这是我的代码片段:
使用此代码,我无法使用 user_id == nil 保存标志。我可以用 user_id == 12345 保存一个标志(即一些 user_id 不在数据库中)。这就是 validates_associated API 规范所说的:
validates_associated(*attr_names)
验证关联的一个或多个对象本身是否都有效。适用于任何类型的协会。
...
注意:如果尚未分配关联,则此验证不会失败。如果要确保关联既存在又保证有效,还需要使用 validates_presence_of。
我能够通过使用它来获得所需的行为,而不是:
我对 API 规范的理解是 validates_associated 检查关联表,以查看是否存在具有与 Flag 的外键匹配的 id 的行,前提是外键是 non-nil。任何人都可以对此提供任何见解吗?我是否误解了 validates_associated 应该如何工作?
validation - 活动记录验证 - validates_associated
我不清楚这种方法实际上做了什么或何时使用它。
假设我有这些模型:
当我为这样的人创建电话号码时:
保存失败,因为第一个数字无效。这对我来说是件好事。但我不明白的是,如果它已经验证了关联的记录,那么函数 validates_related 是什么?
ruby-on-rails - ActiveModel:关联模型失败时禁用失败验证
默认情况下, Rails3 是否总是validates_associated
针对所有模型运行?
在这样的简单设置中
带有附加评论的新帖子失败,因为评论无效。
如果validates_associated
总是运行,那么为什么会出现(改变:message
?)以及如何将其关闭?我试过validates_associated :comments, :unless => proc{true}
了,但它什么也没做。
我只是想要一个模型来保存,如果每个关联记录都有效,则尝试保存每个关联记录,但如果关联模型无效,则不会失败。
编辑:这更接近我想要做的事情
还有更多模型遵循与 Game 相同的结构,例如 Book、Movie。如果WikipediaParagraph.paragraph == nil
那么游戏验证失败。我希望游戏保存而 WikipediaParagraph 没有保存,但has_one :wikipedia_paragraph, :validate => false
两者都保存,没有它既不保存。
我希望有比使用更优雅的东西
对于每个人has_one/many
,但现在我意识到这可能是不可能的。
ruby-on-rails - Rails : Displaying associated model validations
I have got three models
In rate_cards_controller i want to create/update rate_cards such that one country should have one rate_card.. For that i have added uniqueness validation in RateCardCountry Model. And NOw i want to display the error in rate_card_controller while creating/updating rate_cards.. Needed help?
ruby-on-rails - 使用 :autosave 进行 has_one 关联:如何在孩子的控制器上显示父母的错误?
我创建了一个看起来像这样的模型:
子模型就像:
当我在新孩子的页面上时,如果用户没有为孩子选择以前创建的父母,我想强制他在创建孩子的同时创建一个。如果用户为孩子和父母正确填写所有数据,它工作正常,但如果父母在给定字段上有任何验证问题,我得到的唯一消息是:“父母不能为空”
我想向用户显示如果他单独创建父级时会显示的相同消息。这应该是这样的:“父字段 X 太短”。
是否有可能,使用 validates_associated 或一些类似的助手?
提前致谢!
ruby-on-rails - has_one validates_associated 触发不一致,尽管 'on: :create'
在检查valid?
具有validates_associated :contact, on: :create
. 如果我打两个电话,valid?
第一个是true
,第二个是false
。
这是模型的最小版本,希望它足够详细:
我在控制器中看到的行为是两个动作之间的无限重定向:
如果我取消注释#&& parent.valid?
它会停止重定向,这看起来很疯狂。
发生这种情况的父母有一个无效的phone_number
,但他们注册后周围的要求发生了phone_number
变化,所以我们不想为此烦恼他们。因此,期望的行为是valid?
to be true
,并且最初只是在随后的调用中发生变化。
我已经放入了一些调试语句,我可以看到验证上下文:update
适用于每个调用。所以它不应该运行validates_associated
. 这些也是创建的父母,所以不应该有:create
or new_record?
。另一个调试语句证明正在对联系人进行验证,包括对 phone_number 的验证,但仅在第二次在操作中被调用时。
我还设置了一个断点,可以看到parent.valid?
返回 true 然后返回 false,而且如果我在valid?
被调用和调用之前中断parent.contact_detail
,然后parent.valid?
它返回 false。
为什么第二次调用parent.valid?
验证contact
,即使它只应该这样做on: :create
?
ruby-on-rails - Rails 4 表单 - 文本字段值必须与关联表中的值匹配(自动完成)
我有两个关联的模型/表
在您输入企业地址的新企业表单中,通常会有一个州和/或国家/地区的下拉选择框。但是对于有数千个城市来说,这是行不通的。有没有办法在允许保存之前检查城市是否列在城市表中?甚至可能将 city_id 放在该字段中而不是 city_name 中?
cakephp - cakephp multiple select not working
I have two tables 'businesses' and business_categories
and their association is like
BusinessesTable.php
and I have to input multiple categories to business_categories
table along with businesses
.
This is how the input field is in add.ctp
view
but this is giving error as
and form is not submitting. Removing multiple => true
and replacing business_categories._category_ids
to business.category_id
is working fine.
Is there anything missing ?
Edit 2
SellerBusinessesController.php
on debugging : debug($this->request->data), gives
],
ruby-on-rails - Validates_overlap 自定义消息?
我试试 gem validates_operator。我需要为此验证自定义消息:
验证 :arrival_date, :departure_date, 重叠:{
scope:"place_id",
message_title: "Error",
message_content:"不可能在这个日期预订这个地方" }
但我有简单形式的默认消息:“请查看以下问题”
感谢未来的答案。