# Una stupidata ma

**URL:** <https://www.ruby-forum.com/t/una-stupidata-ma/157709>\
**Category:** IT\
**Created:** [January 14, 2009, 5:58pm UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709 "2009-01-14T17:58:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 14, 2009, 5:58pm UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/1 "2009-01-14T17:58:26Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 10:03am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/2 "2009-01-15T10:03:55Z")

</div>

2009/1/14 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> 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 😃

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 10:06am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/3 "2009-01-15T10:06:18Z")

</div>

2009/1/15 Sandro P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > end  
> > campo  
> > sector\_id ha come valore 1.
> 
> mmh… se inserisci un record nella tabella sectors dovresti avere id = 1  
> non
> 
> sector\_id = 1 😃

si esatto id=1, ma non e’ questo l’origine del problema.

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 10:08am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/4 "2009-01-15T10:08:39Z")

</div>

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 [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 10:11am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/5 "2009-01-15T10:11:36Z")

</div>

2009/1/15 Sandro P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> 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.

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 12:05pm UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/6 "2009-01-15T12:05:52Z")

</div>

ho trovato questo molto bello: [http://scaffolding-ext.rubyforge.org/](http://scaffolding-ext.rubyforge.org/)

2009/1/15 Sandro P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 15, 2009, 10:12am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/7 "2009-01-15T10:12:49Z")

</div>

non sò… controlla il codice dello scaffold e guarda se corrisponde

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 16, 2009, 3:06am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/8 "2009-01-16T03:06:48Z")

</div>

2009/1/15 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > 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.

---

<div class="post-metadata">

**Author:** ![mauro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/45deac/32.png) [@mauro](https://www.ruby-forum.com/u/mauro)\
**Post date:** [January 16, 2009, 3:12am UTC](https://www.ruby-forum.com/t/una-stupidata-ma/157709/9 "2009-01-16T03:12:05Z")

</div>

2009/1/15 Pietro G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> 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#](http://localhost:3000/categories#) |  
Framework  
Trace [http://localhost:3000/categories#](http://localhost:3000/categories#) | Full  
Trace[http://localhost:3000/categories#](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
