我有一个包含多个表的数据库,每个表包含可能不符合rails命名约定的列 是否存在从这些表创建ActiveRecord模型的工具,或者我是否需要逐个执行此操作?
如果我手动为一个表创建ActiveRecord模型,这会没问题吗? (顶部不需要隐藏的数据库标识符?)
更新
我已经尝试过magicmodels但是不能让它工作(自上次修改以来已经有一段时间了)并且似乎与rails 3.2不兼容
我当时尝试了什么:
- change the database.yml so it points towards my existing Postresql database
- manually create my models such as:
# app/models/user.rb
class User < ActiveRecord::Base
end
- run the console and tried
User.all
=> I end up with an error saying that contant User was not initialized.
Doesn't the console import the model automatically ? Or is that linked to the fact the configuration I did is not correct ?
答案 0 :(得分:2)
http://magicmodels.rubyforge.org/magic_model_generator/可能就是你要找的东西。我没有听说过许多提供此功能的工具,因为许多rails应用程序是从头开始设计的,而不是给定一个遗留数据库,然后从中创建模型。
您可以轻松地手动创建模型并将它们映射到几乎任何数据库表。模型有一个“set_table_name'name'”,它允许您将单个模型映射的rails默认约定覆盖到复数db表名。
答案 1 :(得分:1)
ActiveRecord可以与旧数据库一起使用。我做了一个没有使用Rails和ActiveRecord作为我的ORM的后端系统。 “ActiveRecord Without Rails”让我开始了。 “Using ActiveRecord outside Rails”也很有用。在Google上搜索“使用active railsord without rails”,你会发现更多。
您不需要完全充实的模型。只需为所需的表使用基类,ActiveRecord将在数据库中查询所需的内容。它不会知道表关系,但对于一般查询它会做得很好。随时建立关系并需要它们。