- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Rails 3 包括 validates_associated
保存嵌套模型时会自动调用它。该方法的问题是消息很糟糕 - “模型无效”
对于 Rails 2,有一些帖子针对此问题进行了攻击:
最佳答案
关于关系,可以使用:autosave => true
相反,它会在您保存父模型时尝试保存子模型。这将自动运行 child 的验证,他们将报告正确的错误消息。
此外,如果您在子对象上添加必须设置父对象的存在验证,并通过关联构造子对象,您甚至不需要 autosave
标志,你会得到一个漂亮的错误信息。例如:
class Trip < ActiveRecord::Base
validates :name, :presence => true
attr_accessible :name
has_many :places, dependent: :destroy, :inverse_of => :trip
end
class Place < ActiveRecord::Base
belongs_to :trip
validates :name, :trip, presence: true
attr_accessible :name
end
> trip = Trip.new(name: "California")
=> #<Trip id: nil, name: "California">
> trip.places.build
=> #<Place id: nil, name: nil, trip_id: nil>
> trip.valid?
=> false
> trip.errors
=> #<ActiveModel::Errors:0x00000004d36518 @base=#<Trip id: nil, name: "California">, @messages={:places=>["is invalid"]}>
> trip.errors[:places]
=> ["is invalid"]
validates_associated
是自动保存 child 之前时代的遗物,不再是最好的做事方式。当然,这不一定有很好的记录。我不是 100% 肯定这也适用于 Rails 2.3,但我有一种感觉。这些更改是在添加嵌套属性功能时出现的(在 2.x 中的某个时候)。
关于ruby-on-rails - Rails 3 的更好的 validates_associated 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668018/
我有以下 validates_associated 场景 class Parent include Mongoid::Document validates_associated :son
我有两个模型 Post 模型和 Comment 模型。首先,如果创建一个帖子,它的帖子 ID 为 1,然后在创建评论时,我可以使用等于 1 的 post_id 与帖子关联,但是如果我创建一个帖子 ID
我有这些模型:Post、TextPost 和 PhotoPost,我使用多态关联。 可以找到这三个型号here或看下面。 post.rb class Post " } end text_post.
我在模型中使用 validates_associated 来使用其他模型的验证代码。问题是验证失败的消息是“..无效”。 我想将模型验证失败的实际描述性错误冒泡到顶部! 我发现了这个问题: valid
我一直在阅读有关 Rails 验证的内容,validates_associated 方法验证所有子记录(不仅仅是新记录),而 has_many 关联的默认验证是仅保存新的子记录。 从概念上讲,我理解这
是否有等同于 it { should validate... it { should validate_uniqueness_of( 等等 validates_associated 有点像,
Rails 3 包括 validates_associated保存嵌套模型时会自动调用它。该方法的问题是消息很糟糕 - “模型无效” 对于 Rails 2,有一些帖子针对此问题进行了攻击: http:
似乎在 Rails 中,您可以在两个位置定义关联验证,或者在关联本身上: class Child belongs_to :parent, :validate => true end 或者作为验证回
我有一个用户模型和一个友谊模型。 class Friendship 'User', :foreign_key=>'sender_id' belongs_to :receiver, :class_n
我是一名优秀的程序员,十分优秀!