Forum: Rails-ES modelo sin tabla que me genera error en los test

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.
Da0cb14b3966fa76454c6f95dc1cb04e?d=identicon&s=25 Angel Mauricio Pino Gonzalez (Guest)
on 2009-05-02 22:22
(Received via mailing list)
Señores:
Cree un modelo en este caso se llama sqltxt, que lo uso en las vistas
para poder ingresar codiciones que deben cumplir los registros que el
usuario quiere que aparescan en pantalla.

mi controller index por ende va mas omenos
así:def index
    params[:txtsql].delete_if{|k,v| v.blank?}  if !
params[:txtsql].blank?
    @txtsql = Txtsql.new
    @txtsql[:codigo] = ""
    @txtsql[:nombre] = ""
    if params[:txtsql].blank?
      @bancos = Banco.all( :order => "nombre")
    else
      txt = ""
      arr = ["aca ira despues el txt"]
      if not params[:txtsql][:codigo].blank?
        txt += " AND codigo = ?"
        arr << params[:txtsql][:codigo]
        @txtsql["codigo"] = params[:txtsql][:codigo]
      end
      if not params[:txtsql][:nombre].blank?
        txt += " AND nombre LIKE ?"
        arr << "%" + params[:txtsql][:nombre] + "%"
        @txtsql["nombre"] = params[:txtsql][:nombre]
      end
      arr[0] = txt[5..-1]
      @bancos = Banco.all( :conditions => arr, :order => "nombre")
    end

lo que me permite mantener consistencia, es decir al mostrarle los
registros resultantes y lo que escribio el usuario para la consulta.

el caso es que al hacer los test me sale esto ( que es mi problema):

 1) Error:
test_no_debe_grabar_comercio_sin_banco_(banco_id)(ComercioTest):
ActiveRecord::StatementInvalid: Mysql::Error: Table
'fempac_test.txtsqles' doesn't exist: DELETE FROM `txtsqles`

Existe una forma de decirle que ese modelo no tiene una tabla
correspondiente?

Gracias
--
Angel Mauricio Pino G
AngelMauricio.PinoGonzalez@gmail.com
Movil: 08-577.92.72
Da0cb14b3966fa76454c6f95dc1cb04e?d=identicon&s=25 Angel Mauricio Pino Gonzalez (Guest)
on 2009-05-02 22:50
(Received via mailing list)
Bueno ya lo resolvi de la manera simple cree una tabla con el nombre
txtsqles y ya no reclama.

Mis disculpas debi probar eso antes de mandar la consulta.

Gracias

El día 2 de mayo de 2009 14:12, Angel Mauricio Pino Gonzalez
<angelmauricio.pinogonzalez@gmail.com>
escribió:>    if params[:txtsql].blank?
>        txt += " AND nombre LIKE ?"
> el caso es que al hacer los test me sale esto ( que es mi problema):
> Angel Mauricio Pino G
> AngelMauricio.PinoGonzalez@gmail.com
> Movil: 08-577.92.72
>



--
Angel Mauricio Pino G
AngelMauricio.PinoGonzalez@gmail.com
Movil: 08-577.92.72
C98e88f3e69340d27466baadb2b80b4c?d=identicon&s=25 Gunnar Wolf (Guest)
on 2009-05-03 21:44
(Received via mailing list)
Angel Mauricio Pino Gonzalez dijo [Sat, May 02, 2009 at 02:12:11PM
-0400]:
> el caso es que al hacer los test me sale esto ( que es mi problema):
> (...)
> Existe una forma de decirle que ese modelo no tiene una tabla correspondiente?

Muy simple: No hagas que tu modelo herede de
ActiveRecord::Base. ActiveRecord se emplea para modelos que
corresponden a tablas de tu BD, para cualquier otra cosa, no es una
clase padre adecuada.

Puedes tener cualquier tipo de clase dentro de tus modelos -
Obviamente, no vas a poder decir Sqltxt.find(:all), porque no hay
dónde buscarlos, y tendrás que hacer las pruebas adecuadas al tipo de
modelo. Pero perfectamente puedes heredar de cualquier otra cosa (o de
ninguna, pa'l caso).

Saludos,

--
Gunnar Wolf - gwolf@gwolf.org - (+52-55)5623-0154 / 1451-2244
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF
This topic is locked and can not be replied to.