ruby-on-rails - Ruby on Rails : Accessing nesting (parent) object on create

标签 ruby-on-rails ruby

我正在尝试创建一个父对象以及与其关联的一组嵌套子对象,但是我不确定如何在任一对象之前在子对象的验证方法中访问父对象(其他子对象)坚持下来了。简而言之,这是我的场景:

class Parent < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :parent
  validate :siblings_validation

  def siblings_validation
    siblings = parent.children #parent is Nil here on create (but not on update)
    # compare stuff...
  end
end

关联是使用标准的嵌套表单集创建的,如下所示:

- form_for @parent do |f|
  = f.text_field :name
  - f.fields_for :children do |c|
    = render :partial => "child_fields", :locals => {:f => c}

有没有办法从子对象的 siblings_validation 方法访问父对象?

感谢您的回复。

最佳答案

在保存父模型之前,您无法访问它。当我必须验证嵌套模型时,我遇到了同样的问题。但是您可以从父级访问子模型。所以尝试通过父模型进行验证。或者,您可以创建一些 attr_accessible 并在子模型中使用它来进行验证。

关于ruby-on-rails - Ruby on Rails : Accessing nesting (parent) object on create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884601/

相关文章:

ruby-on-rails - Rails 4 博客/:year/:month/:title with clean routing

javascript - 通过 JavaScript 函数调用时,Rails 部分未呈现

html - form_tag 内的 form_tag - 在 rails 中

ruby-on-rails - 在 Rails : Paypal, 纯商家帐户/网关或 Chargify 之类的系统中实现我们的计费系统?

ruby - Rails 将数组合并为数组的数组

ruby-on-rails - 如何在 Rails 模型中运行 "do" block ,同时仍列出 :dependent?

ruby-on-rails - Railsomniauth 不刷新数据

mysql - 轨道 3 : Measure database performance (MongoDB and MySQL)

ruby-on-rails - Rails 3. 如何获得两个数组之间的差异?

ruby - 此 gnuplot 代码的正确 Ruby gnuplot (rgplot) 语法是什么?