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]