开发者

Rails ActiveRecord trouble

Please help with ActiveRecord testing. Trying my first Rails 3.1.0 project. There I have model named "Account", described like:

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

And if i'm making in Rspec :

account = Account.new(:type => 1)
account.type.should开发者_开发技巧 == 1

I've got test result:

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

I tried Account creation in console, and every time i'm assigning any integer value as 'type', i got 'nil'. Not assigned value. What I'm making wrong?


'type' is a protected attribute in rails, because .type is a ruby method. Hence you can't mass assign it. Rename the attribute (eg :account_type) & everything should work fine.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜