has_many关系不在夹具中工作

时间:2014-08-02 09:55:18

标签: ruby-on-rails relationship fixtures

我的用户模型:

class User < ActiveRecord::Base
  has_many :articles, :dependent => :destroy
end

文章模型:

class Article < ActiveRecord::Base
  belongs_to :user
end

文章夹具:

one:
  url: http://www.google.com/
  title: Sample Title
  user: default

用户夹具:

default:
  email: user@example.com
  name: Test User

在测试用例中尝试Article.first.user可以正常工作,但是如果我尝试在我的用户夹具中使用以下相反的关系:

default:
  email: user@example.com
  name: Test User
  articles: one

我收到以下错误:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "articles" of relation "users" does not exist

1 个答案:

答案 0 :(得分:1)

您不需要在users fixture中添加另一行来指定文章列表。您需要做的就是在文章夹具中指定用户(为文章设置user_id列),Rails为使用该外键的用户指出文章。

所以,你的文章夹具应该是:

default:
  email: user@example.com
  name: Test User