我有一个全新的 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.