我无法加载这些固定装置,也不知道为什么。在花了几个小时研究这个问题并开始认真质疑我对现实的把握之后。所以我转向这里,希望有人能以最少的嘲笑指出这个错误。
我尝试过以与api文档描述的相同方式进行操作,并与authlogic文档相结合。我在SO上找到的帖子也没有任何帮助。
使用ruby 1.9.2-p180
users.yml
one:
id: 0
username: testuserone
email: whatever@whatever.com
password_salt: <%= salt = Authlogic::Random.hex_token %>
crypted_password: <%= Authlogic::CryptoProviders::Sha512.encrypt("benrocks" + salt) %>
persistence_token: <%= Authlogic::Random.hex_token %>
posts: one, two
two:
id: 1
username: testusertwo
email: test@gmail.com
password_salt: <%= salt = Authlogic::Random.hex_token %>
crypted_password: <%= Authlogic::CryptoProviders::Sha512.encrypt("benrocks" + salt) %>
persistence_token: <%= Authlogic::Random.hex_token %>
posts: one, two, valid_post
posts.yml
one:
title: First valid Awesome post
content: Clearly awesome content
user: one
two:
title: Second valid Awesome post
content: Clearly more awesome content
user: one
valid_post:
title: Awesome post
content: Clearly awesome content
user: one
empty_post:
title:
content:
user: one
schema.rb
ActiveRecord::Schema.define(:version => 20110527132832) do
create_table "posts", :force => true do |t|
t.string "title"
t.string "content"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
create_table "users", :force => true do |t|
t.string "username"
t.string "email"
t.string "crypted_password"
t.string "password_salt"
t.string "persistence_token"
t.datetime "created_at"
t.datetime "updated_at"
end
end
post.rb-模型
class Post < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 3
default_scope :order => 'created_at DESC'
validates :title, :presence => true
belongs_to :user
end
user.rb-模型
class User < ActiveRecord::Base
attr_accessible :username, :email, :password, :password_confirmation
acts_as_authentic
has_many :posts
end
rake数据库:设备:载荷给定
rake中止!SQLite3::SQLException:表用户没有名为posts的列:INSERT INTO"users"("id"、"username"、"email"、"password_salt"、"crypted_password"、"persistence_token"、"posts"、"created_at"、"updated_at")VALUES(0,'testuserone','whatever@whatever.com','ce407b78abcdf7ef7a179f2ef3c4452892411fe0705fc363623f669c420204c3 ceb452167a2470ef737d2d8eae6ff0eca75eae2f7965d2eeaf2262a3ce61df','ecd509731f30ed38442d4f0e6c0da81e7e747e5ded086be96a3b45b896cde0b99b314d187b1f0011ba5c6a1f661c9748fd20ac11332a13b8046ee9738167cc2','784c46f5e8218592'e5f46a00111a000281e5a25a36133c17de9e31f3a1e99fe8c45fc5c327b87f32df6147b56337b900c6a1342329479dfd1c372d700a37c',一,二,2011-05-28 13:28:44
使用中的宝石
来源'http://rubygems.org'
gem"rails",3.0.7'gem"will_pagenate","3.0.pre2"gem"authlogic"gem"漂亮的生成器"gem"sqlite3"gem"factory_girl_rails"宝石"faker"gem"mocha",:group=>:测试
我已经很久没有使用fixture了,但我认为你不需要在users.yml中描述关联,因为你已经在posts.yml里描述了。试着删除那些行。
事实证明,当我迁移测试数据库时,或者当我给所有与用户不同的帖子命名时,它就开始工作了,比如:user_one,:user_two