gpt4 book ai didi

ruby-on-rails - 覆盖 rails 中的嵌套属性

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:12 24 4
gpt4 key购买 nike

当我重写 Rails 中的嵌套属性方法时会发生什么。例如,

class Order
has_many :line_items
accepts_nested_attributes_for :line_items

def line_item_attributes=(attr)
# what can I do here.
end
end

class LineItem
belongs_to :order
end

在上面的代码中,

  1. line_item_attributes= 方法中,我可以添加/修改/删除订单的订单项吗?
  2. 如果我调用 @order.save(params),什么时候调用 line_items_attributes=

最佳答案

使用别名

在 Rails 4 中,您可以覆盖并调用 super

在早期版本中,可以使用Ruby的alias:

class Order
has_many :line_items
accepts_nested_attributes_for :line_items

# order of arguments is new_name, existing_name
alias :original_line_items_attributes= :line_items_attributes=
def line_items_attributes=(attrs)
modified_attributes = my_modification_method(attrs)
self.original_line_items_attributes = modified_attributes
end

end

关于ruby-on-rails - 覆盖 rails 中的嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8968972/

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