Usar una tabla creada anteriormente

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.

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