小编Bli*_*zzo的帖子

如何使用工厂女孩创建具有has_many的关联列表,并在创建时使用验证

在Rails应用程序中,给出了三个模型User,Article和Reviewer,它们具有以下关系和验证:

class User < ActiveRecord::Base
  has_many :articles
  has_many :reviewers
end

class Reviewer < ActiveRecord::Base
  belongs_to :user
  belongs_to :article
end

class Article < ActiveRecord::Base
  belongs_to :user
  has_many :reviewers

  validate :has_reviewers?

  def has_reviewers?
    errors.add(:base, "article must have at least one reviewer.") if self.reviewers.blank?
  end
end
Run Code Online (Sandbox Code Playgroud)

以下工厂使用较新的DSL:

FactoryGirl.define do

  factory :user do
    name { (8...20).map{ ('a'..'z').to_a[rand(26)] }.join }
    age  { Kernel.rand(100) }
  end

  factory :article do
    body "This is the article content"
    title "This is the title"
    user
    after_create do |article|
      article.reviewers = …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3 factory-bot

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

factory-bot ×1

ruby-on-rails-3 ×1