在 before_validation 回调中创建关联对象在 Rails 4.1 中失败
Create associated object in before_validation callback fails in Rails 4.1
我有一个自引用关联页面 -> 页面(想想链接)。在 before_validation 钩子中应该创建关联对象。它在 Rails 4.0 中工作,现在它给出了 StackLevel Too Deep
class Page
has_many :linked_pages, -> { uniq }, through: :page_links
before_validation :parse_links
end
在 parse_links
回调中:
page = # results from parsing
self.pages.build(linked_pages_id: page.id).save
我猜 pages.create 现在会在父内容上触发 before_validation 回调。我可以在这里提供什么帮助?
是否可以选择 create
关联对象而不验证父对象?
通过选项validate: false
。喜欢
self.pages.
build(linked_pages_id: page.id).
save(validate: false)
我有一个自引用关联页面 -> 页面(想想链接)。在 before_validation 钩子中应该创建关联对象。它在 Rails 4.0 中工作,现在它给出了 StackLevel Too Deep
class Page
has_many :linked_pages, -> { uniq }, through: :page_links
before_validation :parse_links
end
在 parse_links
回调中:
page = # results from parsing
self.pages.build(linked_pages_id: page.id).save
我猜 pages.create 现在会在父内容上触发 before_validation 回调。我可以在这里提供什么帮助?
是否可以选择 create
关联对象而不验证父对象?
通过选项validate: false
。喜欢
self.pages.
build(linked_pages_id: page.id).
save(validate: false)