gpt4 book ai didi

ruby-on-rails - 是否可以访问委托(delegate)给另一个模型的属性?

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:53 26 4
gpt4 key购买 nike

在创建应用程序时,我有带有属性 delivery_option 的模型 Order。一段时间后,我不得不创建“​​更高级别”order 来对订单进行分组并创建 MainOrder。现在,Order 将 :delivery_option 委托(delegate)给 MainOrder,但大约 70% 的 MainOrders 具有 delivery_option == nil,因为在迁移期间创建的位置,只是为了覆盖过去的订单。我无法填写 main_order.delivery_option = order.delivery_option,因为一个 main_order 中可以有很多订单,每个订单都有不同的 :delivery_option

是否可以在不点击 order.main_order.delivery_option 的情况下以某种方式访问​​ order.delivery_option

代码如下所示:

class MainOrder
has_many :orders
end

class Order
belongs_to :main_order
delegates :delivery_option, to: main_order, allow_nil: true
end

最佳答案

您可以使用 attributes返回具有属性值的散列的方法:

order = Order.first
# fetches delivery_option from the main_order
order.delivery_option

# returns value stored in orders table belonging to the order
order.attributes["delivery_option"]

# you can also use
order.attribute(:delivery_option)

关于ruby-on-rails - 是否可以访问委托(delegate)给另一个模型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58024534/

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