Ruby on Rails是否适合我想要实现的目标?为现有MySQL数据库创建CRUD脚手架

时间:2012-04-25 03:03:03

标签: mysql ruby-on-rails crud

我以前创建过localhost-only RoR应用程序,其中模型是使用为它们生成的支架手动创建的,为数据创建了一个漂亮,快速,易于使用的CRUD界面。我使用SQLite在Netbeans中做到了这一点。

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

我已经考虑过转储当前数据库的模式,db:raking it,然后生成脚手架。这是正确的方法吗?我还读过有关Magic Model Generator的内容。这是将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

1 个答案:

答案 0 :(得分:1)

似乎有几种方法可以将rails与现有数据库一起使用。请参阅Connect rails to existing postgres DB - models not seen by console and controllers,特别是其中的链接:http://magicmodels.rubyforge.org/magic_model_generator/http://blog.aizatto.com/2007/05/21/activerecord-without-rails/

指出您不需要将ActiveRecord与rails配合使用,这是一件好事。您的模型可以是任何对象,因此使用sequelarel等内容访问数据可能更容易。

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