从外部ruby脚本添加记录

时间:2008-12-17 02:52:14

标签: ruby-on-rails ruby

从外部脚本向数据库添加记录的最佳方法是什么?我想使用activerecord但是我不确定如何在rails目录结构之外这样做。

1 个答案:

答案 0 :(得分:8)

您可以在ruby中使用activerecord。假设您已安装所需的数据库驱动程序。你可以做类似的事情

require 'activerecord'

ActiveRecord::Base.establish_connection(
  :adapter => 'your_database_adapter',
  :host => 'your_host',
  :username => 'username'
  :password => 'password',
  :port => 'port_number'
)

建立数据库连接。由于您要将记录添加到数据库,因此我假设架构已存在。然后你只需做

class ModelName < ActiveRecord::Base
  has_many :modelz
end

class Modelz < ActiveRecord::Base
  belongs_to :model_name
end

你已经定下来了。 (多数民众赞成在建立数据库连接后,您可以使用活动记录在rails中执行所有操作,甚至可以在模型之间建立关系)您可以使用刚刚创建的模型类的对象执行任何操作。像,

ModelName.find(:all)

@model = ModelName.new
@model.user_id = rand(10)
@model.save

等等。

如果您没有架构,请不要惊慌。您可以在建立数据库连接后通过嵌入代码simlar来创建它。

ActiveRecord::Schema.define do
  create_table :sometable do |table|
    table.integer :int1, :int2
    table.string :str1, :str2
  end

  create_table :yetanothertable do |table|
    table.integer :anotherint
    table.text :sometext
  end
end

这应该可以正常工作。这里给出的代码是一个示例,可能在语法上不完美。 This should also help.但是,架构定义是以较旧的rails方式完成的。