[英]Rails Routes - link_to singular resource with params
因此,就路由而言,這並不是我的最佳選擇,但是我想要實現的目標似乎很簡單。 我所擁有的功能是當前只能由超級用戶訪問的功能,現在我想將該功能擴展到portal_administrator。 現在訪問該頁面,您需要一個如下所示的link_to
= link_to('Data', portal_datum_path(current_portal.id), :id => :super_user_data_link)
通過匹配路由
match '/portal_data/:id', :controller => 'portal_data', :action => 'show', :as => 'portal_datum'
現在,此方法很好用,您最終得到的是帶有id參數的網址。 在它路由到的頁面中使用。 實際上,有一個前置過濾器可以確保有一個ID。
def load_portal
@portal = Portal.find(params[:id])
end
這將使懷疑的用戶僅通過查看URL即可查看他所處的門戶。 現在,我將其擴展到用戶,我不希望他們看到他們所在的門戶網站ID,所以我認為我將在以下內容中使用單個資源。
= link_to('Data', portal_data_path, :id => :super_user_data_link)
與一個
match '/portal_data' => "portal_data#show"
因此它可以路由到同一位置,但保持網址干凈。 但顯然,這項工作很重要。 即使我對之前的文件管理器進行硬編碼以接受第一個門戶,但jsut都會引發錯誤
No route matches {:controller=>"portal_data", :action=>"show"}
但是如果我在那兒耙我的路線呢?
我確定自己做錯了什么主意嗎?
我要做的就是將:id設為可選參數,例如...
match '/portal_data(/:id)'
它有效:)然后在控制器中查找...
def load_portal
@portal = Portal.find(params[:id] || current_portal.id)
end
...如果參數中沒有一個,則為帳戶上的門戶ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.