Ho il seguente modello Rails:Rails: Ignorando gli attributi inesistenti passati per creare()
class CreateFoo < ActiveRecord::Migration
def self.up
create_table :foo do |t|
t.string :a
t.string :b
t.string :c
t.timestamps
end
end
def self.down
drop_table :foo
end
end
Se provo e creare un nuovo record con un attributo aggiuntivo inesistente, questo produce un errore:
Foo.create(a: 'some', b: 'string', c: 'foo', d: 'bar')
ActiveRecord::UnknownAttributeError: unknown attribute: d
C'è un modo per ottenere create() per ignorare attributi che non esistono nel modello? In alternativa, qual è il modo migliore per rimuovere gli attributi inesistenti prima di creare il nuovo record?
Molte grazie
perché si desidera passare attributi non esistenti? – cbrulak
sì, cosa stai cercando di fare. Non vedo ragioni per questo. – s84
Sto interrogando un servizio web di terze parti che restituisce XML che sto analizzando con un hash. Ci sarà un campo nel modello per ogni campo restituito dal servizio, ma devo essere sicuro che se decidono di restituire campi aggiuntivi, questo non impedisce la creazione del record. Ci sono oltre 100 campi, quindi mappare ogni campo individualmente non è un'opzione. – gjb