# Errore tra il collegamento di due tabelle

**URL:** <https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442>\
**Category:** IT\
**Created:** [August 17, 2010, 8:02pm UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442 "2010-08-17T20:02:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 17, 2010, 8:02pm UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442/1 "2010-08-17T20:02:21Z")

</div>

Salve ragazzi, da giorni sto cercando di poter realizzare una lista  
utenti con delle tabelle collegate  
Le tabelle sono  
users : id, description,id\_group  
phones :id , number user\_id

class UsersController \< ApplicationController

# GET /users

# GET /users.xml

def show  
@user = User.find(params[:id])  
@phones = Phone.all(params[:id])

```
respond_to do |format|
  format.html # show.html.erb
  format.xml { render :xml => @user }
end

```

end

class PhonesController \< ApplicationController

# GET /phones

# GET /phones.xml

def index  
@phones = Phone.all

```
respond_to do |format|
  format.html # index.html.erb
  format.xml { render :xml => @phones }
end

```

end

# GET /phones/1

# GET /phones/1.xml

def show  
@phone = Phone.find(params[:id])

```
respond_to do |format|
  format.html # show.html.erb
  format.xml { render :xml => @phone }
end

```

end

# GET /phones/new

# GET /phones/new.xml

class User \< ActiveRecord::Base  
has\_many :phones  
end

class Phone \< ActiveRecord::Base  
belongs\_to :user , :foreign\_key =\>‘user\_id’  
end  
nella view\user.html.erb

**Id:** \<%=h @user.id %\>

**User:** \<%=h @user.user %\> \<%=h @phones%\>

**Group:** \<%=h @user.group\_id %\>

mi restituisce l'errore undefined method `phone' for # ho provato in tutti i mod ma non riesco a venirne a capo . qualcuno mi puo suggerire dove sbaglio ? grazie mille ! fdibenedetto72

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 17, 2010, 11:39pm UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442/2 "2010-08-17T23:39:50Z")

</div>

Fabio Di benedetto wrote:

> nella view\user.html.erb

ma questa view a quale action nel controller si riferisce?  
ipotizzo sia la “show”, allora la view dovrebbe essere: show.html.erb

> belongs\_to :user , :foreign\_key =\>‘user\_id’

Ã¨ fuorviante specificare la foreign\_key se hai nominato il campo secondo  
la “convention over configuration”

> ```
> @phones = Phone.all(params[:id])
> 
> ```

penso dovresti scrivere cosi:  
@phones = Phone.all(:conditions =\> [‘user\_id = ?’ params[:id]])

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 18, 2010, 1:56am UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442/3 "2010-08-18T01:56:55Z")

</div>

Ciao Aldo ,  
si la view e’ la show.html.erb  
ma se inserisco nel controller Userscontrollers cosi come mi hai scritto  
tu all’esecuzione della view.html.erb mi da questo errore

C:/testapp/app/controllers/users\_controller.rb:17: syntax error,  
unexpected tIDENTIFIER, expecting ‘]’  
@phones = Phone.all(:condition =\>[‘user\_id = ?’ params[:id]])  
^  
C:/testapp/app/controllers/users\_controller.rb:17: syntax error,  
unexpected ‘]’, expecting keyword\_end  
@phones = Phone.all(:condition =\>[‘user\_id = ?’ params[:id]])

mentre se lascio cosi com’era il controller dalla console ed anche  
riesco a visializzare i/o record  
tant’e che se scrivo \<%= phones %\> mi scrive i record trovati il mio  
problema che non riesco a visualizzare gli attributi di @phones

Saluti

Fdibenedetto

Aldo I. wrote:

> Fabio Di benedetto wrote:
> 
> > nella view\user.html.erb
> 
> ma questa view a quale action nel controller si riferisce?  
> ipotizzo sia la “show”, allora la view dovrebbe essere: show.html.erb
> 
> > belongs\_to :user , :foreign\_key =\>‘user\_id’
> 
> Ã¨ fuorviante specificare la foreign\_key se hai nominato il campo secondo  
> la “convention over configuration”
> 
> > ```
> > @phones = Phone.all(params[:id])
> > 
> > ```
> 
> penso dovresti scrivere cosi:  
> @phones = Phone.all(:conditions =\> [‘user\_id = ?’ params[:id]])

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 18, 2010, 2:33am UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442/4 "2010-08-18T02:33:20Z")

</div>

scusami, avevo saltato una virgola, va scritto cosi:

@phones = Phone.all(:conditions =\> [‘user\_id = ?’, params[:id]])

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 18, 2010, 12:41pm UTC](https://www.ruby-forum.com/t/errore-tra-il-collegamento-di-due-tabelle/193442/5 "2010-08-18T12:41:42Z")

</div>

Grazie mille!  
Aldo I. wrote:

> scusami, avevo saltato una virgola, va scritto cosi:
> 
> @phones = Phone.all(:conditions =\> [‘user\_id = ?’, params[:id]])
