2014-02-07 5 views
1

У меня есть вид администратора, который из вложенного контроллера, перечисляя все разговоры из драгоценного камня почтового ящика, см. Здесь: (Mailboxer Gem, Admin View).Rails routing вложенные представления

Я не могу получить правильную маршрутизацию. Ссылка, созданная в представлении администратора, относится к/conversations/id, и мне нужно, чтобы она переходила к admin/conversations/id. Оба маршрута при вводе в панель браузера работают и показывают правильный вид.

В моем контроллере:

# GET /admin/conversations 
    # GET /admin/conversations.json 
    def index 
    @admin_conversations = Conversation.all.unscoped.order("updated_at desc") 
    end 

# GET /admin/conversations/1 
# GET /admin/conversations/1.json 
def show 
    @conversation = Conversation.find(params[:id]) 
end 

На моем взгляде:

<% @admin_conversations.each do |admin_conversation| %> 
    <tr> 
    <td><%= admin_conversation.originator.name %> <span class="label label-default"><%= admin_conversation.originator.role.humanize %></span> </td> 
    <td><%= admin_conversation.subject %> </td> 
    <td><%= time_ago_in_words(admin_conversation.updated_at) %> ago</td> 
    <td><%= link_to 'View Conversation', admin_conversation %></td> 

    </tr> 

В ссылке создается в представлении идет к/разговорам/ид, и мне нужно, чтобы перейти к администратору/разговорам /Я бы.

Моего администратор маршруты:

namespace :admin do 
    resources :users 
    resources :managers 
    resources :conversations 
    get 'enquiries/:status', to: 'enquiries#index', as: :admin_enquiries_with_status, constraints: {status: /(pending|completed|approved)/} 
    resources :enquiries, except: [:destroy] do 
     post :add_venue, on: :member 
     post :remove_venues, on: :member 
     post :approve, on: :member 
    end 
    resources :venues, only: [:index, :show, :destroy] do 
     get :autocomplete, on: :collection 
    end 
    get "pages/statistics" 
    end 

Я пытался работать через рельсы Docs делать с маршрутизацией пространства имен, но не могу заставить его работать. Фактический маршрут/admin/conversations/id работает, если я ввожу его в панель браузера, и возвращает страницу показа с правильного контроллера. Я просто не уверен, что делать, чтобы правильно показать ссылку?

контроллер Диалог маршруты:

send_message POST /conversations/send_message(.:format) conversations#send_message 
      reply_conversation POST /conversations/:id/reply(.:format) conversations#reply 
      trash_conversation POST /conversations/:id/trash(.:format) conversations#trash 
     untrash_conversation POST /conversations/:id/untrash(.:format) conversations#untrash 
       conversations GET /conversations(.:format) conversations#index 
           POST /conversations(.:format) conversations#create 
      new_conversation GET /conversations/new(.:format) conversations#new 
       conversation GET /conversations/:id(.:format) conversations#show 

администратора контроллера Диалог маршруты:

POST /admin/conversations(.:format) admin/conversations#create 
     new_admin_conversation GET /admin/conversations/new(.:format) admin/conversations#new 
     edit_admin_conversation GET /admin/conversations/:id/edit(.:format) admin/conversations#edit 
      admin_conversation GET /admin/conversations/:id(.:format) admin/conversations#show 
           PATCH /admin/conversations/:id(.:format) admin/conversations#update 
           PUT /admin/conversations/:id(.:format) admin/conversations#update 
           DELETE /admin/conversations/:id(.:format) admin/conversations#destroy 
+0

Что такое «рейк-маршруты»? – emaillenin

+0

Обновлено, чтобы показать соответствующие маршруты рейка. Благодаря! –

+0

, который выглядит правильно для меня – emaillenin

ответ

0

Итак, работали его.

<td><%= link_to 'View Conversation', [:admin, admin_conversation] %></td> 

Просто пришлось отказаться от: админ и положить квадратные скобки предварять/админ на URL.

Должно быть, только что прочитали документацию чуть более подробно ...