2011-04-26 116 views
9

我想设置配置文件控制器与设计注册成员一起工作。嵌套的资源与设计 - Rails3

我创建了Profile模型&控制器和由我member.rb模型添加belongs_to :memberprofile.rb模型和has_one :profile增加了一个one-to-one relationship

要创建我使用了嵌套的资源:

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

resources :members do 
    resources :profiles 
end 

调用rake routes输出

 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"} 

localhost:3000/members/1/profiles在浏览器中正确的路线我去profiles#index页面,但是当我尝试调用member_profiles_path它出现以下错误:

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

任何人都可以看到我要去哪里吗?我正在使用rails 3.0.3。

回答

9

由于这是一个has_one关联,您是否尝试过使用资源而不是资源?

resources :members do 
    resource :profile 
end 

然后,您应该能够做到这样的事情:

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

工程。谢谢你的帮助。 – 2011-04-26 10:49:08