1

我之前创建了仅限本地主机的 RoR 应用程序,其中模型是手动创建的,并为它们生成了脚手架,为数据创建了一个漂亮、快速、易于使用的 CRUD 界面。我在 Netbeans 中使用 SQLite 做到了这一点。

现在我有一个带有 MySQL 数据库的服务器,并希望创建一个快速的 CRUD 应用程序,它提供了一种快速简便的方法来查看数据库中的数据并提供一些选项,例如编辑/删除。由于我的数据库已经由 MySQL 指定,这似乎打开了大量的蠕虫,与我的 Netbeans 冒险在 RoR 中使用脚手架生成的 crud web 应用程序相比,这使得这变得不那么直接了。

我已经研究过转储我当前数据库的模式,db:raking 它,然后生成脚手架。这是正确的方法吗?我还阅读了有关魔术模型生成器的信息。这是将 MySQL 数据库转换为 RoR 模型格式的最佳方法吗?http://magicmodels.rubyforge.org/magic_model_generator/

我想我要问的是,对于我的数据库结构,RoR 是否适合模拟一个快速的 CRUD Web 应用程序,以便数据可以对其执行基本操作?

下面是我的 MySQL 数据库的 schema.rb。userId 和 attachmentId 上存在 FK 关系。

ActiveRecord::Schema.define(:version => 0) do

  create_table "attachments", :primary_key => "attachmentId", :force => true do |t|
    t.string "attachmentName",               :null => false
    t.string "fileType",       :limit => 30, :null => false
    t.binary "content",                      :null => false
    t.string "printCode"
  end

  create_table "emails", :primary_key => "emailId", :force => true do |t|
    t.integer "userId",       :limit => 11,   :null => false
    t.integer "attachmentId", :limit => 11,   :null => false
    t.string  "body",         :limit => 1000
    t.string  "subject"
  end

  add_index "emails", ["attachmentId"], :name => "attachmentId", :unique => true
  add_index "emails", ["userId"], :name => "userId"

  create_table "printUsers", :primary_key => "userId", :force => true do |t|
    t.string "email", :null => false
  end

  add_index "printUsers", ["email"], :name => "email", :unique => true

end
4

1 回答 1

1

似乎有几种方法可以将 Rails 与现有数据库一起使用。请参阅将 rails 连接到现有的 postgres DB - 控制台和控制器看不到的模型,尤其是其中的链接: http: //magicmodels.rubyforge.org/magic_model_generator/http://blog.aizatto.com/2007/05/ 21/activerecord-without-rails/

需要指出的是,您不需要将 ActiveRecord 与 rails 一起使用。您的模型可以是任何对象,因此使用sequelarel之类的东西可能更容易访问数据。

另一种方法是将数据从现有数据库迁移到您通过构建模型生成的新数据库中。

于 2012-04-25T03:22:53.113 回答