【问题标题】:error Rails 5 <class> must exist错误 Rails 5 <class> 必须存在
【发布时间】:2017-10-18 14:17:58
【问题描述】:

这种交付模型的创建应该在附加到用户后工作......

class Delivery < ApplicationRecord
  enum kind_of: { package: 0, facturation: 1 }
  belongs_to :sender, class_name: 'User'
  has_many :orders, foreign_key: "package_delivery_id"
  has_many :invoices, foreign_key: "invoices_delivery_id"
  has_one :address
  has_many :runs, dependent: :destroy
  accepts_nested_attributes_for :address
end

...然而,在我的规范中

require 'rails_helper'

describe OrderPolicy do
  context 'toegang' do
    subject { OrderPolicy.new(user, order) }
    let(:user) { create :user }
    let(:delivery) { create :delivery, sender: user }
    let(:order) { create :order, customer: user, status: 'open', package_delivery: delivery }
    let!(:selection) { create( :selection, :product_name         => 'Honingpot',
                                           :product_quantity     => 4,
                                           :product_price        => '5,00',
                                           :product_mail_weight  => '460',
                                           :product_sales_tax    => 6,
                                           :order                => order) }

...

还有这个:

require 'rails_helper'

describe DeliveryPolicy do
  context 'toegang' do
    subject { DeliveryPolicy.new(user, delivery) }
    let(:user) { create :user }
    let(:delivery) { FactoryGirl.create :delivery }

...

...我收到错误:

交货必须存在

虽然我在那里有用户。 (optional: true 也不起作用,顺便说一句。)

奇怪的是,我只需要在控制台中添加一个Delivery.create 即可开始工作,只需添加一个sender: ...

【问题讨论】:

    标签: ruby-on-rails database factory-bot


    【解决方案1】:

    “这种交付模型的创建应该在附加到用户之后才能工作......” - 问题就在于此?然后你可以这样做:

    class Delivery < ApplicationRecord
      enum kind_of: { package: 0, facturation: 1 }
      belongs_to :sender, class_name: 'User', required: false
    

    从 Rails5 开始,belongs_to 默认添加required: true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多