Forum: Italian Ruby user group una stupidata ma......

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.
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Mauro (Guest)
on 2009-01-14 17:58
(Received via mailing list)
Ho due tabelle in relazione uno a molti:
la prima:
def self.up
    create_table :sectors do |t|
      t.string :codice
      t.text :descrizione
      t.timestamps
end

la seconda:

def self.up
    create_table :categories do |t|
      t.references :sector
      t.string :codice
      t.text :descrizione
      t.text :esempi

      t.timestamps
    end
    foreign_key(:categories, :sector_id, :sectors)
end

per le foreign keys ho creato un helper come aveva suggerito qualcuno
qui.
Ho creato gli scaffold per avere pronte le pagine per l'inserimento la
modifica e la visualizzazione dei dati.
Nella pagina per l'inserimento delle categorie ho anche un campo di
testo
dove devo va inserito l'id del settore a cui si riferisce la categoria.
Bene...inserisco il primo dato nella tabella settori, controllo e il
campo
sector_id ha come valore 1.
Vado ad inserire i dati nella tabella categories e nel campo settore ci
metto il valore 1.
Mi da un errore del tipo:
ActiveRecord::AssociationTypeMismatch in CategoriesController#create

Sector(#70182185518660) expected, got String(#70182230246400)

Mi sfugge qualcosa?
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-01-15 10:03
(Received via mailing list)
2009/1/14 Mauro <mrsanna1@gmail.com>

>
> end
>
> per le foreign keys ho creato un helper come aveva suggerito qualcuno qui.
> Ho creato gli scaffold per avere pronte le pagine per l'inserimento la
> modifica e la visualizzazione dei dati.
> Nella pagina per l'inserimento delle categorie ho anche un campo di testo
> dove devo va inserito l'id del settore a cui si riferisce la categoria.
> Bene...inserisco il primo dato nella tabella settori, controllo e il campo
> sector_id ha come valore 1.


mmh.. se inserisci un record nella tabella sectors dovresti avere id = 1
non

sector_id = 1 :D
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Mauro (Guest)
on 2009-01-15 10:06
(Received via mailing list)
2009/1/15 Sandro Paganotti <sandro.paganotti@gmail.com>

> >
> >    end
> campo
> > sector_id ha come valore 1.
>
>
> mmh.. se inserisci un record nella tabella sectors dovresti avere id = 1
> non
>
> sector_id = 1 :D
>

si esatto id=1, ma non e' questo l'origine del problema.
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-01-15 10:08
(Received via mailing list)
Quando crei una nuova category  devi fare o

category.sector = Sector.find( ... )

o

category.sector_id = 1

Non puoi fare

category.sector = 1

perchè lui si aspetta (come ti dice) un settore e non una stringa (che poi
è
un intero)

Sandro

2009/1/15 Mauro <mrsanna1@gmail.com>
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Mauro (Guest)
on 2009-01-15 10:11
(Received via mailing list)
2009/1/15 Sandro Paganotti <sandro.paganotti@gmail.com>

> category.sector = 1
>
> perchè lui si aspetta (come ti dice) un settore e non una stringa (che poi
> è
> un intero)


mmmm e' lo scaffondind che mi sta fuorivando?
Per la creazione dei modelli, controller e viste ho usato lo scaffonding
e
non ho aggiunto altro.
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-01-15 10:12
(Received via mailing list)
non sò... controlla il codice dello scaffold e guarda se corrisponde
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Mauro (Guest)
on 2009-01-15 12:05
(Received via mailing list)
ho trovato questo molto bello: http://scaffolding-ext.rubyforge.org/


2009/1/15 Sandro Paganotti <sandro.paganotti@gmail.com>
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2009-01-16 03:06
(Received via mailing list)
2009/1/15 Mauro <mrsanna1@gmail.com>:
>> Sector(#70182185518660) expected, got String(#70182230246400)

hai inserito tanti dati, ma non quelli essenziali, tipo il traceback.
dove avviene l'errore? nel controller? nel model?

cmq.

non sono iscritto alla ml da molto tempo, ma ti posso dire che in
genere tutti i messaggi vengono letti, e a tutti si cerca di dare
risposta. però non sempre si
può.
ad esempio, non so niente di helper sulle foreign keys, e non so mai
rispondere quando c'è di mezzo lo scaffolding, perché lo scaffolding
mi urta, non lo posso vedere. gusti.

altri che non hanno risposto avranno i loro motivi.

questo per dire che, in genere, rifare la domanda uguale senza
aggiungere nulla difficilmente aumenta le probabilità di risposta.

> Bene...inserisco il primo dato nella tabella settori, controllo e il campo
> sector_id ha come valore 1.

non ho capito. nella tabella sectors non c'è nessun campo sector_id,
semmai c'è un campo id, forse volevi dire quello?

aggiungi più dati, per favore.
B0f6d8efcf671ea3163449e231264cc4?d=identicon&s=25 Mauro (Guest)
on 2009-01-16 03:12
(Received via mailing list)
2009/1/15 Pietro Giorgianni <giorgian@gmail.com>

> risposta. però non sempre si può.
>
> campo
> > sector_id ha come valore 1.
>
> non ho capito. nella tabella sectors non c'è nessun campo sector_id,
> semmai c'è un campo id, forse volevi dire quello?
>
> aggiungi più dati, per favore.


Il traceback sarebbe?
io vedo: Application Trace <http://localhost:3000/categories#> |
Framework
Trace <http://localhost:3000/categories#> | Full
Trace<http://localhost:3000/categories#>
comunque il full trace e':

/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/associations/association_proxy.rb:256:in
`raise_on_type_mismatch'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/associations/belongs_to_association.rb:22:in
`replace'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/associations.rb:1276:in
`sector='
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2587:in
`send'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2587:in
`attributes='
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2583:in
`each'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2583:in
`attributes='
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:2283:in
`initialize'
app/controllers/categories_controller.rb:43:in `new'
app/controllers/categories_controller.rb:43:in `create'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in
`send'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:1253:in
`perform_action_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:617:in
`call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:610:in
`perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/rescue.rb:136:in
`perform_action_without_caching'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:13:in
`perform_action'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
`cache'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/query_cache.rb:8:in
`cache'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/caching/sql_cache.rb:12:in
`perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in
`send'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:524:in
`process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/filters.rb:606:in
`process_without_session_management_support'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/session_management.rb:134:in
`process'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/base.rb:392:in
`process'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:183:in
`handle_request'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:110:in
`dispatch_unlocked'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:123:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in
`synchronize'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:122:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:132:in
`dispatch_cgi'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/dispatcher.rb:39:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/webrick_server.rb:103:in
`handle_dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/webrick_server.rb:74:in
`service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/webrick_server.rb:60:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/servers/webrick.rb:66
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
`require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:521:in
`new_constants_in'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in
`require'
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/commands/server.rb:49
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
script/server:3
This topic is locked and can not be replied to.