我创建的模型用户有字段id,name,lastname,age我如何创建模型,其中字段“id”不是自动增量ID,我需要手动输入数字
运行脚手架:
rails g scaffold user id:integer name:string lastname:string age:integer
格式为/views/users/_form.html.erb
<div class="field">
<%= f.label :id %><br />
<%= f.text_field :id %>
</div>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :lastname %><br />
<%= f.text_field :lastname %>
</div>
<div class="field">
<%= f.label :age %><br />
<%= f.text_field :age %>
</div>
<div class="actions">
<%= f.submit %>
</div>
我插入值
Id: 12345
Name: paul
Lastname: rivers
Age: 24
但要创建show:
用户已成功创建。
Id: 1
Name: paul
Lastname: rivers
Age: 24
在rails服务器中显示:
Started POST "/users" for 127.0.0.1 at Thu Aug 18 14:26:35 -0500 2011
Processing by UsersController#create as HTML
Parameters: {"commit"=>"Create User", "authenticity_token"=>"C8oBqh86CPmramr5yYRoIgufaQnKMBD5SSLOIrZ1mFo=", "utf8"=>"✓", "user"=>{"name"=>"paul", "id"=>"12345", "lastname"=>"rivers", "age"=>"24"}}
WARNING: Can't mass-assign protected attributes: id
SQL (0.1ms) BEGIN
SQL (0.4ms) SHOW TABLES
SQL (0.4ms) describe `users`
AREL (0.4ms) INSERT INTO `users` (`lastname`, `name`, `age`, `created_at`, `updated_at`) VALUES ('rivers', 'paul', 24, '2011-08-18 19:26:35', '2011-08-18 19:26:35')
SQL (99.2ms) COMMIT
我认为字段ID不包含在查询中
编辑1
迁移是:
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users, :id => false do |t|
t.integer :id
t.string :name
t.string :lastname
t.integer :age
t.timestamps
end
end
def self.down
drop_table :users
end
end
id必须是primary_key
答案 0 :(得分:0)
编辑您的迁移
create_table :users, :id => false do |t|
t.integer :id
...
end