我创建模型用户与字段ID,姓名,姓氏,年龄如何我可以创建一个模型,其中字段“ID”是不是自动增量ID,我需要手动输入数字rails 3,如何创建id字段以手动输入ID号?
run scaffold :
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
但创建显示:
用户已成功创建。在轨
Id: 1
Name: paul
Lastname: rivers
Age: 24
服务器显示:
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
复制? http://stackoverflow.com/questions/517869/id-field-without-autoincrement-option-in-migration – fredw
我会建议你不要这样做。通常,打破Rails约定并不好。 – inntran
好吧,它的完美 – kalelc