Forum: Rails-ES Usar una tabla creada anteriormente

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Fbf8cf5036d1d35f8aba3c2d144925c1?d=identicon&s=25 Erika Tafur (erika_web)
on 2014-09-28 21:10
Hola,

Les comento mi situación, tengo un programa en c# ( esta en este
lenguaje porque el dispositivo que envía los datos utiliza c# para la
lectura de estos)  que llena una tabla creada en MySql, yo estoy creando
un Sistema en RoR pero necesito consultar unos campos de esa tabla(la
tabla es actualizada constantemente por el otro sistema) quisiera saber
si me pueden ayudar en como puedo realizar esto. he buscado pero no he
encontrado la manera de hacerlo.

Gracias.
571b6dd148a79f321b2ecf0300681db9?d=identicon&s=25 Ivan Hinojal (ivan_h)
on 2014-10-27 13:03
Hola Erika,
Existe la posibilidad de usar dos conexiones a varias bases de datos en
una app en Rails.

Lo que si te diria antes de nada es que no mezcles las bases de datos.
Es decir la app en rails que tenga su propia base de datos y la app en
C# que tenga su propia base de datos. Pero es una mera opinion.

Para que quede mas claro voy a poner un ejemplo:
- Supon que la app en rails es una tienda. Tiene su base de datos propia
- Supon que la app en C# crea nuevos productos (modelo Product). Tiene
su base de datos propia en la que se encuentra la tabla products. La app
de rails usara los productos, para añadir mas o para, eliminarlos.. etc

Por lo tanto lo que vamos a hacer es que el modelo Product se conecte
automaticamente a la base de datos de la app de C# y se mapee a la tabla
products. De esta forma podras obtener los productos como se viene
haciendo en rails (ejemplos):

  > Product.find(32) # Producto con id == 32
  > prod = Product.new(title: 'Champu')
  > prod.save  # Se guarda el champu en la base de datos de C#

Ahora viene la parte de codigo para que esto funcione asi:

[database.yml]
  # Añade los parametros de conexion
  dbcsharp_development:
    adapter: mysql2
    encoding: utf8
    database: nombre_base_datos_c_sharp
    username: usuario_base_datos_c_sharp
    password: password_base_datos_c_sharp
    host: mysql://127.0.0.1:3306
  dbcsharp_production:
    ... # Datos, con la misma forma que dbsharp_development, pero por si
        # deseas crear copias de la BD development y tests.
  dbcsharp_tests:
    ...

[app/models/product.rb]
  class Product < ActiveRecord::Base
    establish_connection "dbcsharp_#{Rails.env}"
    self.abstract_class = true # Por si algun modelo heredase de Product
      # ya que si no pensaria que es STI
    ...
  end

(No lo he probado pero te deberia poner en el buen camino)

A partir de ahora las interacciones con Product se deberian producir en
la base de datos de C#

_____________________________________________________
Aplicaciones web en rails a medida: http://drails.com
This topic is locked and can not be replied to.