2016-03-15 127 views
1

使用“会员”命名空间,当我做耙路线,它不显示,我应该使用它的路径所以,我创建了两个路线是刚刚出这一点; -Rails路由错误与命名空间?

GET /用户/:ID (:格式)构件/构件#

GET /user/:id/edit(.:format)构件/构件#编辑

当我使用这条线,它返回一个错误; -

<li><%= link_to image_tag(current_user.picture, class: "user-picture"), {:controller => "Member/Member", :action => :show} if current_user.picture? %></li> 

,并得到这个错误; -

没有路由匹配{:动作=> “秀”,:控制器=> “会员/会员”}

这是我的路线; -

scope module: 'member' do 
    get '/user/:id', to: 'member#show' 
    get '/user/:id/edit', to: 'member#edit' 
    end 

我的整个耙路线; -

    Prefix Verb URI Pattern     Controller#Action 
       charges GET /charges(.:format)    charges#index 
         POST /charges(.:format)    charges#create 
       new_charge GET /charges/new(.:format)   charges#new 
      edit_charge GET /charges/:id/edit(.:format) charges#edit 
        charge GET /charges/:id(.:format)   charges#show 
         PATCH /charges/:id(.:format)   charges#update 
         PUT /charges/:id(.:format)   charges#update 
         DELETE /charges/:id(.:format)   charges#destroy 
     new_admin_session GET /admins/sign_in(.:format)  devise/sessions#new 
      admin_session POST /admins/sign_in(.:format)  devise/sessions#create 
    destroy_admin_session DELETE /admins/sign_out(.:format)  devise/sessions#destroy 
      admin_unlock POST /admins/unlock(.:format)  devise/unlocks#create 
     new_admin_unlock GET /admins/unlock/new(.:format) devise/unlocks#new 
         GET /admins/unlock(.:format)  devise/unlocks#show 
     new_user_session GET /users/sign_in(.:format)  devise/sessions#new 
      user_session POST /users/sign_in(.:format)  devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)  devise/sessions#destroy 
      user_password POST /users/password(.:format)  devise/passwords#create 
     new_user_password GET /users/password/new(.:format) devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format) devise/passwords#edit 
         PATCH /users/password(.:format)  devise/passwords#update 
         PUT /users/password(.:format)  devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)  users/registrations#cancel 
     user_registration POST /users(.:format)    users/registrations#create 
    new_user_registration GET /users/sign_up(.:format)  users/registrations#new 
    edit_user_registration GET /users/edit(.:format)   users/registrations#edit 
         PATCH /users(.:format)    users/registrations#update 
         PUT /users(.:format)    users/registrations#update 
         DELETE /users(.:format)    users/registrations#destroy 
        root GET /       public/public#homepage 
      cart_add_item POST /cart_add_item(.:format)  cart/cart#add_item_to_cart 
       empty_cart GET /empty_cart(.:format)   cart/cart#empty_cart 
      destroy_cart GET /destroy_cart(.:format)  cart/cart#destroy 
        cart GET /cart(.:format)    cart/cart#show 
      product_new GET /product/new(.:format)   admin/product#new 
      product_create POST /product/create(.:format)  admin/product#create 
     product_destroy GET /product/destroy(.:format)  admin/product#destroy 
         GET /user/:id(.:format)   member/member#show 
         GET /user/:id/edit(.:format)  member/member#edit 

我将如何访问我的表演动作的d我的编辑动作?

回答

2

我建议你使用内置resources Rails的在你的路线:

scope module: 'member' do 
    resources :users, only: [:show, :edit] 
end 

,然后你会能够呼叫以下路径:

member_user_path(current_user) # /member/users/:id/ -> Show action 
edit_member_user_path(current_user) # /member/users/:id/edit -> Edit action 

而不是使用老式的链接定义的:

{:controller => "member/member", :action => :show} 
1

没有路由匹配{:动作=> “秀”,:控制器=> “会员/会员”}

的问题是不是与routes,但与link本身。您需要将其更改为以下

<li><%= link_to image_tag(current_user.picture, class: "user-picture"), {:controller => "member/member", :action => :show} if current_user.picture? %></li> 

通知的变化:controller => "Member/Member":controller => "member/member"

0

我做在轨道4类似下面的版本:

scope '/v1' do 
    resources :foobar, module: 'v1' 
end 

scope '/v2' do 
    resources :foobar, module: 'v2' 
end 

路线:

/v1/foobar/:id 
/v2/foobar/:id 

我有控制器在app/v1app/v2目录中