Rails 3.0.7 с приборами ruby ​​1.9.2 с: .: - PullRequest
0 голосов
/ 28 мая 2011

Я не могу загрузить эти приборы и не знаю почему. Потратив несколько часов на проблему и начав серьезно сомневаться в моем понимании реальности. Поэтому я обращаюсь сюда в надежде, что кто-то укажет на ошибку с минимальной насмешкой.

Я попытался сделать это так же, как описано в api-docs и объединено с 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 db: Светильники: нагрузка дает

грабли прерваны! SQLite3 :: SQLException: у пользователей таблицы нет столбца с именами posts: INSERT INTO "users" ("id", "username", "email", "password_salt", "crypted_password", "persistence_token", "posts", "made_at" , "updated_at") ЗНАЧЕНИЯ (0, 'testuserone', 'whatever@whatever.com', 'ce407b78abcdf7ef7a179f2ef3c4452892411fe0705fc363623f669c420204c3ceb452167a2470ef737d2d8eae6ff0eca75e1eae2f7965d2eeaf2262a3ce61df', 'ecd509731f30ed38442d4f0e6c0da81e7e747e5ded086be96a3b45b896cde0b99b314d187b1f0011ba5c6a1f661c9748fd20ac11332a413b8046ee9738167cc2', '784c46f5e1f8218592e5f46a00111a00281e53a25a36133c17de9e31f3a1e99fe8c45fc5c327b87f32dff6147b56337b900c6a1342329479dfd1c372d700a37c', 'один, два', «2011-05-28 13:28:44 ',' 2011-05-28 13:28:44 ')

драгоценные камни в использовании

source 'http://rubygems.org'

драгоценный камень 'rails', '3.0.7' gem 'will_paginate', '3.0.pre2' драгоценный камень 'authlogic' драгоценный камень 'изящные генераторы' драгоценный камень "sqlite3" драгоценный камень 'factory_girl_rails' драгоценный камень "обманщик" драгоценный камень "мокко",: группа =>: тест

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

Хорошо получается, что он начал работать либо когда я перенес тестовую базу данных, либо когда я дал всем сообщениям имена, которые отличались от пользователей, например: user_one,: user_two

0 голосов
/ 28 мая 2011

Я давно не пользовался приборами, но я не думаю, что вам нужно описывать ассоциацию в users.yml, так как вы уже делаете это в posts.yml.Попробуйте удалить эти строки.

...