gpt4 book ai didi

ruby-on-rails - 在 Rails 模型中指定可选引用

转载 作者:行者123 更新时间:2023-12-04 02:30:36 24 4
gpt4 key购买 nike

我有一个赞助商模型和一个促销代码模型。

  • 赞助商可以拥有 零个或多个 促销代码
  • 促销代码可以有 零或一 赞助商

  • 因此,促销代码应该有一个对赞助商的可选引用,即 sponsor_id可能有也可能没有值(value)。我不确定如何在 Rails 中设置它。

    这是我到目前为止所拥有的:
    # app/models/sponsor.rb
    class Sponsor < ActiveRecord::Base
    has_many :promo_codes # Zero or more.
    end
    # app/models/promo_code.rb
    class PromoCode < ActiveRecord::Base
    has_one :sponsor # Zero or one.
    end
    # db/migrate/xxxxx_add_sponsor_reference_to_promo_codes.rb
    # rails g migration AddSponsorReferenceToPromoCodes sponsor:references
    # Running migration adds a sponsor_id field to promo_codes table.
    class AddSponsorReferenceToPromoCodes < ActiveRecord::Migration
    def change
    add_reference :promo_codes, :sponsor, index: true
    end
    end

    这有意义吗?我的印象是我必须使用 belongs_to在我的促销代码模型中,但我对此没有依据,只是我还没有看到 has_manyhas_one例子呢。

    最佳答案

    在 Rails 5 中,belongs_to 默认定义为 required。要使其成为可选,请使用“可选”选项:)

    class User
    belongs_to :company, optional: true
    end

    来源: https://github.com/rails/rails/issues/18233

    关于ruby-on-rails - 在 Rails 模型中指定可选引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993804/

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