Рельсы ActiveRecord беда - PullRequest
       2

Рельсы ActiveRecord беда

0 голосов
/ 10 сентября 2011

Пожалуйста, помогите с тестированием ActiveRecord. Пробую мой первый проект Rails 3.1.0. Там у меня есть модель с именем «Аккаунт», описанная так:

migration.rb

def self.up
    create_table :accounts do |t|
      t.string :name
      t.integer :type
      t.references :user

      t.timestamps
    end
    add_index :accounts, :user_id
end

account_model.rb

class Account < ActiveRecord::Base
  belongs_to :user

  validates_length_of :name, :within => 15..255
  validates_numericality_of :type
end

А если я делаю в Rspec:

account = Account.new(:type => 1)
account.type.should == 1

У меня есть результат теста:

Failure/Error: account.type.should == 1
       expected: 1
            got: nil (using ==)

Я пытался создать учетную запись в консоли, и каждый раз, когда я назначал любое целочисленное значение как «тип», я получал «ноль». Не назначено значение. Что я делаю не так?

1 Ответ

4 голосов
/ 10 сентября 2011

'type' - это защищенный атрибут в rails, потому что .type - это метод ruby.Следовательно, вы не можете массово назначить его.Переименуйте атрибут (например, account_type), и все должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...