stilisticamente è carino, io ho uno stile differente, ma comunque a me
piace.
Solo che non capisco il senso del tutto…
se ti serve una classe che non prende delle proprietà dinamicamente (come
gli AR) ma le dichiara al suo interno come array, perchè non fare una
classe “normale”?
stilisticamente è carino, io ho uno stile differente, ma comunque a me piace.
Solo che non capisco il senso del tutto…
se ti serve una classe che non prende delle proprietà dinamicamente (come gli AR) ma le dichiara al suo interno come array, perchè non fare una classe “normale”?
Invece mi serve una cosa che prende le proprieta dinamiche, ma non che non si appoggia sul database. Magari c'e un trucco per fare
questo con AR?
–
David N. Welton
Linux, Open Source Consulting
On Sep 8, 2006, at 9:57 AM, David W. wrote:
stilisticamente è carino, io ho uno stile differente, ma comunque
a me piace.
Solo che non capisco il senso del tutto…
se ti serve una classe che non prende delle proprietà
dinamicamente (come gli AR) ma le dichiara al suo interno come
array, perchè non fare una classe “normale”?Invece mi serve una cosa che prende le proprieta
dinamiche, ma non che non si appoggia sul database. Magari c'eun trucco per fare
questo con AR?
Non ti basta una “banale” Struct? Se poi la vuoi inizializzare
passando i parametri
in un hash…
class QuasiActiveRecord < Struct
def initialize(hash)
hash.each { |k,v| self.send("#{ k }=", v) }
end
end
Contact = QuasiActiveRecord.new(:name, :via, :cap)
c = Contact.new(:name => ‘fred’, :via => ‘con il vento’, :cap => 35100)
puts c.name
fred
Contact.new(:foo => ‘bar’)
r.rb:3:in send': undefined methodfoo=’ for # (NoMethodError)
–
Stefano C.
[email protected]
Se lavori in Rails e vuoi ActiveRecords ma senza una tabella dietro
estendi
questa classe:
class ActiveForm < 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
def initialize(attributes = nil)
super
end
def self.abstract_class; return true; end
end
Così puoi comunque sfruttare validazione e associazioni, bello no?
La puoi usare in questo modo:
class MyClass < ActiveForm
column :name, :string
column :description, :string, :default => “cool”
end
Paolo
On 9/8/06, Stefano C. [email protected] wrote:
Invece mi serve una cosa che prende le proprieta
dinamiche, ma non end r.rb:3:insend’: undefined method `foo=’ for #<struct Contact
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Paolo D.’
SeeSaw | Another point of view