gpt4 book ai didi

ruby-on-rails - rails : create Parent, 如果不存在,同时创建子记录

转载 作者:行者123 更新时间:2023-12-04 06:03:31 24 4
gpt4 key购买 nike

以下任何最佳实践?:

我的制造商模型有很多库存

在我的新库存表单中,我想要一个映射到 Manufacturer.name 的字段,这样当一个从应用程序提交新的库存:

  • 从表单中搜索具有“名称”的制造商
    • 如果存在则将id分配给@inventory.manufacturer_id并保存@inventory
    • 如果不存在,则使用表单中的“名称”创建制造商,将 id 分配给@inventory.manufacturer_id 并保存
    • 对新的库存表格进行验证
      • 这样,如果 Inventory 表单在“名称”以外的字段上验证失败
        • “名称”字段将使用用户输入的内容重新填充(但除非表单通过验证,否则不会创建新的制造商)

最佳答案

你可以这样尝试:

class Inventory < ActiveRecord::Base

...

belongs_to :manufacturer

...

def manufacturer_name
manufacturer && manufacturer.name
end

def manufacturer_name=(value)
self.manufacturer = Manufacturer.find_by_name(value)
self.manufacturer ||= Manufacturer.new(:name => value)
end

...

end

在这种情况下,您应该在 Inventory 表单上输出 manufacturer_name 文本字段。

关于ruby-on-rails - rails : create Parent, 如果不存在,同时创建子记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588811/

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