我有一个全新的 Rails 应用程序,我想将它连接到现有的 MySQL 数据库中进行一些读写操作。我已经编辑了我的database.yml
文件以连接到新的数据库。rails c
并且rails s
不要抛出导致我相信连接有效的错误。
我还没有创建任何模型或迁移。我想知道是否有一种简单的方法可以将我需要的模型放入我的 Rails 项目中。
如果我需要导出备份或架构,我可以使用 Sequel Pro 连接到数据库。还是我需要手动生成模型并复制所有列类型和所有内容?
谢谢你的帮助。
我有一个全新的 Rails 应用程序,我想将它连接到现有的 MySQL 数据库中进行一些读写操作。我已经编辑了我的database.yml
文件以连接到新的数据库。rails c
并且rails s
不要抛出导致我相信连接有效的错误。
我还没有创建任何模型或迁移。我想知道是否有一种简单的方法可以将我需要的模型放入我的 Rails 项目中。
如果我需要导出备份或架构,我可以使用 Sequel Pro 连接到数据库。还是我需要手动生成模型并复制所有列类型和所有内容?
谢谢你的帮助。
ActiveRecord 将为您检测列名!您不需要创建任何迁移,但您必须制作模型。
当你创建一个活动记录模型时,活动记录将通过复数类名来推断你正在连接的表名。
所以:
# app/models/book.rb
class Book < ActiveRecord::Base
end
将尝试找到一个名为“books”的表。然后,您可以实例化 Book 的一个实例,您会发现它具有用于字段名称的 getter/setter。
如果您的表不遵循此命名约定,您也可以手动定义表名:
class Mouse < ActiveRecord::Base
self.table_name = "mice"
end
http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html
首先为orders
表创建具有以下结构的空模型文件:
class Order < ActiveRecord::Base
end
有了这么多,您就可以在订单表上获得所有活动记录的魔力。您可以从控制台执行以下操作:
> Order.count
=> # Shows the number of rows in orders table
> Order.first
=> # Return the first row from the table
> Order.where(...)
=> # Return selected rows from the table meeting the specified criteria.
请参阅Active Record Query Interface了解更多活动记录功能,您可以从ActiveRecord::Base
.