Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Tableless model

  1. #1
    Utente di HTML.it L'avatar di reo
    Registrato dal
    Apr 2004
    Messaggi
    27

    Tableless model

    Ciao a tutti, ecco il mio problemino:

    Stavo provando a fare qualche test con i modelli Tableless al fine di poterli poi integrare in webservices (ma poco importa).

    Ora, seguendo questo post il giochetto sembra alquanto banale.

    Il mio medello User si presenta così:
    codice:
    # models/user.rb
    
    class User < ActiveRecord::Base
      def self.columns
        @columns ||= []
      end
    
      def self.column(name, sql_type = nil, default = nil, null = true)
        columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
      end
    
      # Manually define the columns used by this model
      column :id, :integer
      column :email, :string
      column :password, :string
    
      # Override the save method to prevent exceptions.
      def save(validate = true)
        validate ? valid? : true
      end
    
    end
    benissimo.

    A questo punto faccio una piccola verifica e provo a creare un nuovo oggetto:
    http://localhost:3001/users/new -> inserisco i miei dati fittizi ed invio il form.

    Vengo dunque ridirezzionato al metodo show con questo risultato: "ActiveRecord::ActiveRecordError: no such table: users: SELECT * FROM users LIMIT 1"

    codice:
    #controllers/users_controller.rb
    
      def show
        @user = User.find(params[:id])
        respond_to do |format|
          format.html # show.html.erb
          format.xml  { render :xml => @user }
        end
      end
    Capisco che non può eseguire il find ma come posso raggiungere e visualizzare l'oggetto tableless appena istanziato?

    [Rails 2.3.3, Ruby 1,8,6]

  2. #2
    Capisco che non può eseguire il find ma come posso raggiungere e visualizzare l'oggetto tableless appena istanziato?
    Non esiste alcun oggetto istanziato.
    Find fallisce, dunque genera una eccezione. @user vale nil poiché non è stato possibile trovare/istanziare alcun oggetto.

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Ci ho pensato e ripensato ma non sono arrivato a una conclusione, qual'è lo scopo di fare una cosa del genere?

  4. #4
    Utente di HTML.it L'avatar di reo
    Registrato dal
    Apr 2004
    Messaggi
    27
    Originariamente inviato da toraz
    Ci ho pensato e ripensato ma non sono arrivato a una conclusione, qual'è lo scopo di fare una cosa del genere?
    Ad esempio potrebbe essere utile creare un webservice che effettua delle elaborazioni matematiche complesse necessarie a più web applications.

    Per rimanere con i piedi per terra, ipotizza di voler creare un webservice che restituisce la somma di due numeri trasmessi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.