【发布时间】:2013-11-04 09:32:25
【问题描述】:
我是 Ruby on Rails 的新手。我有一个名为 create user
的迁移class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.column :username, :string, :limit => 25, :default => "", :null => false
t.column :hashed_password, :string, :limit => 40, :default => "", :null => false
t.column :first_name, :string, :limit => 25, :default => "", :null => false
t.column :last_name, :string, :limit => 40, :default => "", :null => false
t.column :email, :string, :limit => 50, :default => "", :null => false
t.column :display_name, :string, :limit => 25, :default => "", :null => false
t.column :user_level, :integer, :limit => 3, :default => 0, :null => false
end
User.create(:username=>'test',:hashed_password=>'test',:first_name=>'test',:last_name=>'test',:email=>'test@test.com',:display_name=> 'test',:user_level=>9)
end
end
当我运行rake db:migrate 时,表是使用上述列创建的,但测试数据不存在
mysql>select * from users;
Empty set (0.00 sec)
编辑我刚刚删除了整个数据库并重新开始迁移,现在它显示以下错误。
rake aborted!
An error has occurred, all later migrations canceled:
Can't mass-assign protected attributes: username, hashed_password, first_name, last_name, email, display_name, user_level
我做错了什么请帮忙? 谢谢。
【问题讨论】:
-
当您将
User.create语句更改为User.create!(带有感叹号)时,是否会出现验证错误? -
编辑了问题你能帮帮我吗
-
把这个放在 user.rb attr_accessible :username, :hashed_password, :first_name, :last_name, :email, :display_name, :user_level
-
把它作为答案发布我很乐意接受它。
标签: ruby-on-rails ruby ruby-on-rails-3 migration rake