我有一个表admin_users。名为AdminUser的模型。
架构是
ActiveRecord::Schema.define(version: 20130915031734) do
create_table "admin_users", force: true do |t|
t.string "first_name", limit: 25
t.string "last_name", limit: 50
t.string "email", limit: 100, default: "", null: false
t.string "username", limit: 25
t.datetime "created_at"
t.datetime "updated_at"
t.string "password_digest"
end
add_index "admin_users", ["username"], name: "index_admin_users_on_username", using: :btree
如何在表中插入值?
我试过了(下图)
使用rails console
答案 0 :(得分:0)
最好使用db / seeds.rb文件并运行rake db:seed
(或类似机制)来填充数据库。
在迁移过程中,您可以访问完整的应用程序环境。这意味着您可以使用模型类,但由于模型可能会随着时间的推移而发生变化,因此在迁移过程中引用它们并不是非常安全。在迁移中,您还可以使用execute
方法执行任意SQL。
答案 1 :(得分:0)
使用文件db/seeds.rb
,Rails为我们提供了一种方便快捷地将默认值提供给全新安装的方法。这是Rails环境中的普通Ruby程序。您可以完全访问应用程序的所有类和方法。
因此,您不需要使用rails控制台手动输入所有内容,以便在新的Rails应用程序中提供在名为“create”的部分中创建的记录,但您只需使用以下文件db / seeds.rb:
示例代码。
Country.create(name: 'Germany', population: 81831000)
Country.create(name: 'France', population: 65447374)
Country.create(name: 'Belgium', population: 10839905)
Country.create(name: 'Netherlands', population: 16680000)
除种子外,您可以使用迁移文件。
ActiveRecord::Schema.define(version: 20130915031734) do
create_table "admin_users", force: true do |t|
t.string "first_name", limit: 25
t.string "last_name", limit: 50
t.string "email", limit: 100, default: "", null: false
t.string "username", limit: 25
t.datetime "created_at"
t.datetime "updated_at"
t.string "password_digest"
end
add_index "admin_users", ["username"], name: "index_admin_users_on_username", using: :btree
/*Add your script here to insert some predifined value.*/
AdminUsers.create(first_name: 'Nair', email: 'nair@gmail.com', username: 'nairg' )
AdminUsers.create(first_name: 'Nair1', email: 'nair1@gmail.com', username: 'nairg1' )
AdminUsers.create(first_name: 'Nair2', email: 'nair2@gmail.com', username: 'nairg2' )
/* ... So on as per your requirement */
end
生成种子文件:Generating Seeds Blog
答案 2 :(得分:0)
你可以在控制器中创建create方法来保存数据,
def create
@admin_user = Admin_user.new(admin_users_params)
if @admin_user.save
redirect_to :action => "index"
else
render action: 'new'
end
end
def admin_users_params
params.require(:admin_user).permit(:first_name, :last_name, :email, :username)
end