Tengo un pequeño script en ruby en el que me gustaría usar ActiveRecord para acceder fácilmente a un modelo de base de datos. ¿Cuál es la mejor manera de hacerlo?

3 Comentarios

  1. 89
    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
    • undefined method `require_gem’ – que significa joya «activerecord»?
    • El require_gem llamada está en desuso. Se debe exigir «activerecord» ahora.
    • Oh, gracias. Yo lo he usado en mucho tiempo.
    • Otra pregunta relacionada: ¿cómo tener un ambiente sensible de la base de datos.yml?
    • es que todavía está a la derecha ?
    • es ‘gem install activerecord’ y requieren de un ‘active_record’, yo sé, es confuso

  2. 10

    Vale la pena señalar que en las versiones posteriores de activerecord (v3+) usted necesita requerir de él

    require "active_record"
  3. 8

    Puede crear un mínimo de secuencia de comandos con una memoria de base de datos SQLite en tan sólo un par de líneas. Esta respuesta es también disponible como una Esencia.

    Inspirado por Jon Leighton entrada en el blog sobre cómo publicar un impresionante ActiveRecord informe de error.


    # 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.
    • Esto es genial, como un comienzo. Entonces, ¿cómo puedo pasar de este a una base de datos que persiste?

Dejar respuesta

Please enter your comment!
Please enter your name here