[英]Rails routing nested views
我有一個管理視圖,該視圖來自嵌套控制器,列出了來自boxer gem的所有對話,請參見此處:( Mailboxer Gem,Admin View )。
我無法正確路由。 在admin視圖中創建的鏈接轉到/ 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>
在視圖中創建的鏈接轉到/ conversations / id,我需要它轉到admin / conversations / id。
我的管理員路線:
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
我已經嘗試通過rails文檔來處理名稱空間路由,但是似乎無法使其正常工作。 如果我在瀏覽器欄中輸入/ 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
好的,解決了。
<td><%= link_to 'View Conversation', [:admin, admin_conversation] %></td>
只需將:admin放進去,並在方括號中加上/ admin即可。
應該剛剛更徹底地閱讀了文檔...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.