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
<p>
<b>Id:</b>
<%=h @user.id %>
</p>
<p>
<b>User:</b>
<%=h @user.user %>
<%=h @phones%>
</p>
<p>
<b>Group:</b>
<%=h @user.group_id %>
</p>
mi restituisce l'errore
undefined method `phone' for #<Phone:0x3d91820>
ho provato in tutti i mod ma non riesco a venirne a capo .
qualcuno mi puo suggerire dove sbaglio ?
grazie mille !
fdibenedetto72
on 2010-08-17 20:02
on 2010-08-17 23:39
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]])
on 2010-08-18 01:56
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 Italo 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]])
on 2010-08-18 02:33
scusami, avevo saltato una virgola, va scritto cosi: @phones = Phone.all(:conditions => ['user_id = ?', params[:id]])
on 2010-08-18 12:41
Grazie mille! Aldo Italo wrote: > scusami, avevo saltato una virgola, va scritto cosi: > > @phones = Phone.all(:conditions => ['user_id = ?', params[:id]])
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.