ruby on Rails:从现有数据库创建模型?

时间:2016-07-01 08:47:40

标签: mysql ruby-on-rails ruby database

我是Ruby on Rails的新手,如果我的数据库已经创建,我想创建模型和CRUD。我正在使用mysql数据库。

谢谢,

3 个答案:

答案 0 :(得分:2)

由于您已经在db中有表,因此不需要scaffoldgenerate model命令,因为它也会生成迁移文件。

在模型文件夹下创建 user.rb 文件。

class User < ActiveRecord::Base
end

然后运行

rails g controller users

以上命令将为其创建控制器和视图。

如果你想创建新模型和CRUD那么

rails g scaffold ModelName field_name:data_type field2_name:data_type

上面的命令将生成模型,带有CRUD方法的控制器,迁移文件和视图

了解更多信息 http://www.tutorialspoint.com/ruby-on-rails/rails-scaffolding.htm

注意:我希望您通过config/database.yml文件配置数据库连接以使用现有数据库

答案 1 :(得分:1)

您可以使用rails生成器来创建一个脚手架,它将为您创建包含所有CRUD方法和基本视图的模型,控制器,从而实现CRUD操作。

例如,假设您要创建一个包含数据库中名称,年龄和地址字段的学生模型,您将生成这样的

rails generate scaffold Student name:string age:integer address:string

这将为您生成这些文件

app/controllers/students_controller.rb  # StudentsController
app/models/student.rb  # Student model
app/views/student/ * # all view files for your student model
db/migrate/migrations_file_for_student.rb

您始终可以手动创建这些文件。并自己编写方法。如果有帮助,请告诉我。

<强>更新

如果您有现有数据库,请务必写下您已正确设置database.yml文件,将应用程序连接到正确的数据库。

接下来创建模型,但不创建迁移文件(因此您必须手动在user.rb内创建app/models。)

测试其是否正常工作:打开rails console并输入

User.all #will list all existing users in the console

看一切是否顺利。

接下来,您需要为您创建控制器和视图。您可以创建scaffold_controller而不是controller,这也会为您创建视图。

rails g scaffold_controller User email first_name last_name

这将为您创建所有视图,并使用CRUD方法创建users_controller,但不会创建模型或迁移文件。

希望这有帮助,请告诉我是否还有其他内容。

答案 2 :(得分:0)

按照以下步骤

  1. rails g model model_name field_name1:field_data_type field_name:field_data_type 恩。 rails g用户名:string email:string
  2. rails g controller controller_name 恩。 rails g控制器用户 //在控制器中添加指定的方法并执行操作。