ruby-on-rails - 如何在FactoryGirl中处理外键

标签 ruby-on-rails ruby-on-rails-4 factory-bot faker

我有一个用户模型和一个关注者模型,这样一个用户可以有很多关注者。所以在追随者模型的模式中,我有 user_id 列和 follower_by_user_id 列。因此,在关注者模型中,一个用户可以被许多关注者关注。用户 id 存储在 user_id 列中,而关注者 id 是其 id 存储在 follow_by_user_id 中。

class User < ActiveRecord::Base
 has_many :followed_users, :class_name => 'Follower', :foreign_key => 'user_id'
 has_many :followers, :class_name => 'Follower', :foreign_key => 'followed_by_user_id'

 validates :email, presence: true, format:{ with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i}

 validates :name,presence:true
end

以上是用户模型
class Follower < ActiveRecord::Base
 belongs_to :user
 belongs_to :followed_by_user, :class_name => 'User', :foreign_key => 'followed_by_user_id'

 validates :user, :followed_by_user, presence:true
 validates_associated :user, :followed_by_user
end

上面是跟随模型
FactoryGirl.define do 
factory :user do
  name {Faker::Name.name}
  email {Faker::Internet.email}
end 

factory :follower do
  user
  followed_by_user_id
end

follow_by_user_id 基本上只是一个用户 id,或者我们可以说 user_id 是 follow_by_user_id 列的外键。我简单的英语follow_by_user_id 是关注其他用户的用户的ID。那么,是否有任何机构可以帮助如何在 follower_by_user_id 列的 follower factory 中包含此外键关系?

提前致谢。

最佳答案

您可以使用 association在你的工厂,像这样(更多信息在 docs 中):

association :followed_by_user, factory: :user

关于ruby-on-rails - 如何在FactoryGirl中处理外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24963824/

相关文章:

javascript - Link_to 不渲染自定义 Controller 操作的部分内容

ruby-on-rails-3 - Ruby 工厂女孩创建多个对象

ruby-on-rails-3 - Rails : Avoiding duplication errors in Factory Girl. ..我做错了吗?

html - Css 覆盖列表样式

ruby-on-rails - 在全局before之前设置HTTP_REFERER(:all) in Rspec

javascript - 如何在控制台中使用browserify "require"?

ruby-on-rails - 如何将每个价格添加到当前价格?

MYSQL 访问拒绝 Rails 应用程序中的 ruby​​ 脚本

ruby-on-rails - Rails 4,Puma,Nginx - ActionController::Live Streaming 在发送第一个 block 后死亡

ruby - 沉默工厂女孩伐木