私はデータベースモデルに簡単にアクセスするためにActiveRecordを使用したい小さなルビースクリプトを持っています。それを行う最善の方法は何ですか?Rails以外のRubyスクリプトでActiveRecordを使用するには?
53
A
答えて
84
require 'active_record'
# Change the following to reflect your database settings
ActiveRecord::Base.establish_connection(
adapter: 'mysql2', # or 'postgresql' or 'sqlite3' or 'oracle_enhanced'
host: 'localhost',
database: 'your_database',
username: 'your_username',
password: 'your_password'
)
# Define your classes based on the database, as always
class SomeClass < ActiveRecord::Base
#blah, blah, blah
end
# Now do stuff with it
puts SomeClass.find :all
some_class = SomeClass.new
10
それはActiveRecordの(V3の+)のそれ以降のバージョンでは、あなたがそう
require "active_record"
7
あなたはわずか数で、インメモリのSQLiteデータベースとの最小限のスクリプトを作成することができますようにそれを必要とする必要があることは注目に値しますライン。この回答もavailable as a Gistです。
Jon Leighton's blog postに感謝して、素晴らしいActiveRecordのバグレポートを投稿する方法について説明します。
# Based on http://www.jonathanleighton.com/articles/2011/awesome-active-record-bug-reports/
# Run this script with `$ ruby my_script.rb`
require 'sqlite3'
require 'active_record'
# Use `binding.pry` anywhere in this script for easy debugging
require 'pry'
# Connect to an in-memory sqlite3 database
ActiveRecord::Base.establish_connection(
adapter: 'sqlite3',
database: ':memory:'
)
# Define a minimal database schema
ActiveRecord::Schema.define do
create_table :shows, force: true do |t|
t.string :name
end
create_table :episodes, force: true do |t|
t.string :name
t.belongs_to :show, index: true
end
end
# Define the models
class Show < ActiveRecord::Base
has_many :episodes, inverse_of: :show
end
class Episode < ActiveRecord::Base
belongs_to :show, inverse_of: :episodes, required: true
end
# Create a few records...
show = Show.create!(name: 'Big Bang Theory')
first_episode = show.episodes.create!(name: 'Pilot')
second_episode = show.episodes.create!(name: 'The Big Bran Hypothesis')
episode_names = show.episodes.pluck(:name)
puts "#{show.name} has #{show.episodes.size} episodes named #{episode_names.join(', ')}."
# => Big Bang Theory has 2 episodes named Pilot, The Big Bran Hypothesis.
# Use `binding.pry` here to experiment with this setup.
関連する問題
- 1. Ruby on Railsは:まだユニットテスト以外のActiveRecordのモデルや備品
- 2. Ruby以外でCalabashを使用する
- 3. どのようにRailsの外JRubyのスクリプトではActiveRecordを使用するには?
- 4. ActiveRecord :: ConnectionNotEstablished Ruby on Rails
- 5. ActiveRecord :: HasManyThroughAssociationNotFoundError - Ruby on Rails
- 6. Rubyを使用してRails以外のSQLite3データベースにスクリプト言語として接続する方法
- 7. JavaでRuby ActiveRecordモデルを使用する
- 8. Ruby on Rails i18n activerecordのカスタムメッセージ
- 9. Ruby/Rails以外のデータベースの変更
- 10. Railsの外でRubyスクリプトでActionView :: Helperを使用するにはどうすればよいですか?
- 11. 同じRuby RailsプロジェクトでMongoMapperとActiveRecordを設定するには
- 12. Ruby on Rails、ActiveRecord、バイナリ検索
- 13. ruby on rails activerecord from gem
- 14. Ruby activerecord ActiveRecordを使用した2つのテーブルの外部結合
- 15. Ruby on Railsでは、ActiveRecordの変更以来、Postを使ってデータを渡す方法はありますか?
- 16. Ruby on RailsでCGI Rubyスクリプトを実行するには?
- 17. Ruby on Rails結合を使用したActiveRecordクエリ
- 18. Rails以外のRubyアプリケーションに時間ヘルパーを含める
- 19. ActiveRecord以外の列を選択する
- 20. Ruby-on-rails:セッションを使用する以外は、ページのステートフルを行う他の方法はありますか?
- 21. Ruby in Railsで外部APIを使用する方法
- 22. のRuby/Railsの/ RSpecの - ActiveRecordの:: AssociationTypeMismatch:
- 23. Ruby Railsは私のモデルにActiveRecordクエリを挿入します
- 24. Ruby(Rails以外)でOAuthプロバイダを作成するためのチュートリアルまたはドキュメント
- 25. ActiveRecord(Ruby On Rails)のクラスインスタンス変数
- 26. ruby on railsでリクエスト間でActiveRecordオブジェクトを永続化する
- 27. ActiveRecord 'destroy'メソッドは、Ruby on Railsでブール値を返しますか?
- 28. ActiveRecord以外のActiveModel :: ValidationsでI18Nの変換を使用するにはどうすればよいですか?
- 29. RailsでRubyデータベースを使用
- 30. IRBでActiveRecordを要求する - Ruby(NO Rails)
未定義のメソッド 'require_gem」 - あなたは宝石 "のActiveRecordを" 意味ですか? –
require_gem呼び出しは非推奨です。今は "activerecord"が必要です。 – kafuchau
@kchau:ああ、ありがとう。私はかなりの時間にそれを使用していません。 – Pesto