模型属于2的机械师蓝图有许多关联



环境:Ruby 1.9.2, Rails 3.1, Machinist 2

我有一个既属于帐户又属于类别的事务模型。

class Transaction < ActiveRecord::Base
  belongs_to :account
  belongs_to :category
  validates_presence_of :account_id, :category_id
end
class Account < ActiveRecord::Base
  has_many :transactions
end
class Category < ActiveRecord::Base
  has_many :transactions
end

我想为创建多个交易的帐户和类别制作机械师蓝图,如:

Account.blueprint do
  name { "Account #{sn}" }
  transactions(3)
end
Category.blueprint do
  name { "Category Name #{sn}"}
  transactions(3)
end
Transaction.blueprint do
  date { Date.current }
  amount { "#{rand(100000)}.#{rand(100)}" }
  description { "Transaction description #{sn}"}
end

由于事务需要帐户和类别,因此上述蓝图失败,因为当Account.make!被创建的事务没有关联的类别,当Category.make!被创建的事务没有关联的帐户。我曾尝试手动创建帐户和类别蓝图内的交易,但我最终陷入无限循环。

任何建议将不胜感激!

谢谢!

试试这个

传递一个哈希数组,可以传递给单独的蓝图。下面是一个例子。

Account.blueprint do
  name         { "Accouunt#{sn}" }
  transactions { [{:amount => 10}, {:amount => 20}] }
end

如果你不想传递任何参数给Transaction,只传递空哈希:

Account.blueprint do
  name         { "Accouunt#{sn}" }
  transactions { [{}] * 3 } # 3 transactions
end

如果您遇到同样的问题,您可能需要相应地显式地传递:category:account选项,但是您可以将它们包含到蓝图中。

相关内容

  • 没有找到相关文章