2011-04-26 12 views
9

Estoy intentando configurar un controlador de perfiles para trabajar con los miembros registrados.Recurso anidado con dispositivo - Rails3

He creado el controlador Profile modelo & y añadí un one-to-one relationship añadiendo belongs_to :member a mi profile.rb modelo y has_one :profile en mi member.rb modelo.

Para crear el recurso anidado utilicé:

devise_for :members, :path => "accounts",:path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" } 

resources :members do 
    resources :profiles 
end 

Calling rake routes salidas

 member_profiles GET /members/:member_id/profiles(.:format)   {:action=>"index", :controller=>"profiles"} 
        POST /members/:member_id/profiles(.:format)   {:action=>"create", :controller=>"profiles"} 
    new_member_profile GET /members/:member_id/profiles/new(.:format)  {:action=>"new", :controller=>"profiles"} 
edit_member_profile GET /members/:member_id/profiles/:id/edit(.:format) {:action=>"edit", :controller=>"profiles"} 
     member_profile GET /members/:member_id/profiles/:id(.:format)  {:action=>"show", :controller=>"profiles"} 
        PUT /members/:member_id/profiles/:id(.:format)  {:action=>"update", :controller=>"profiles"} 
        DELETE /members/:member_id/profiles/:id(.:format)  {:action=>"destroy", :controller=>"profiles"} 

ir a localhost:3000/members/1/profiles en el navegador correctamente rutas conmigo a la página profiles#index, pero cuando intento llamar member_profiles_path se falla con el siguiente error:

No route matches {:controller=>"profiles"} 

¿Alguien puede ver dónde me estoy equivocando aquí? Estoy usando rails 3.0.3.

Respuesta

9

Dado que se trata de una asociación has_one, ¿ha intentado utilizar recursos en lugar de recursos?

resources :members do 
    resource :profile 
end 

A continuación, debería ser capaz de hacer algo como esto:

link_to "Profile", member_profile_path(@member) 
+0

que funciona. Gracias por tu ayuda. –

Cuestiones relacionadas