gpt4 book ai didi

ruby-on-rails - 访问子模型 rails 中的父属性

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:41 25 4
gpt4 key购买 nike

正在为我的模型创建条件验证。要检查这一点,我需要检查 Parent.parent_attribute == "true"

validates :departure_date, presence: true, future: true, :if => :awesome_method?
belongs_to :parent


def awesome_method?
if @parent.parent_attribute == "true"
true
else
false
end
end

目前@parent.parent_attribute 正在返回 nil,即使 payload 有它。我想我遇到了一个问题,它无法访问 parent_attribute 因为它还没有保存......我如何在设置验证之前检查父级是否有值?

更新为了清楚起见,我同时创建了父项和子项。当我尝试使用 Parent.find... 我回来了

Couldn't find Parent with 'parent_id'=CORRECT_INVOICE_NAME

更新 2父项和子项中都有一个创建,但以下 JSON 是创建父项和子项的内容。

{
“parent": {
“parent_id": "PLZDONTSAVE",
“data": 2525.25,
“parent_attribute": true,

“child_attributes":[
{ “child_toy": “123",
“child_data": “ABC" }
]
}
}

父 Controller

  def create
@parent = Parent.new(parent_params)
if @parent.save
render json: @parent, status: :created, location: @parent
else
render json: @parent.errors, status: :unprocessable_entity
end
end

def parent_params
params.require(:parent).permit(:parent_id, :parent_attribute,
child_attributes:[:child_toy, :child_data, ])
end

最佳答案

除非你在某处定义了@parent,否则它将是nil,就像@foo@bar .您只需使用不带“@”的 parent 即可访问通过关联(例如您的 belongs_to)链接的对象。

那么试试这个:

  def awesome_method?
parent.parent_attribute == "true"
end

关于ruby-on-rails - 访问子模型 rails 中的父属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36780392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com