gpt4 book ai didi

ruby-on-rails - rails 4 扩展构建方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:47 25 4
gpt4 key购买 nike

我想扩展构建方法或创建另一种方法,自动使用父模型的属性预填充子模型。

我目前每次都在 Controller 中执行此操作...

@event_log = @event.event_logs.build(
place_id: @event.place_id, quiz_master_id: @event.quiz_master_id,
start_at: Chronic.parse("#{params[:start_at]} #{@event.start_time}")
)

我想将此逻辑移动到模型中:

  def self.auto_build
build(place_id: event.place_id, .....)
end

但是我得到一个错误.. undefined method event

我不确定如何仅覆盖此模型的构建或创建类似的方法:

# File 'activerecord/lib/active_record/associations/builder/association.rb', line 11

def self.build(model, name, options)
new(model, name, options).build
end

最佳答案

您可以为此使用关联扩展:

has_many :event_logs do
def build(*args)
event_log = super
# do with event_log object whatever you want here
# you can access parent object with proxy_association.owner
event_log
end

关于ruby-on-rails - rails 4 扩展构建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295747/

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