我有嵌套的資源,像這樣Rails的自動嵌套資源拔出資源在路線傭工
resources :users do
resources :widgets
end
當我有@widget
,擺脫我的助手,我需要使用user_widget_path(@widget.user, @widget)
正確的路由有什麼辦法告訴導軌自動從@widget
對象中拉出用戶?所以我可以使用user_widget_path(@widget)
我有嵌套的資源,像這樣Rails的自動嵌套資源拔出資源在路線傭工
resources :users do
resources :widgets
end
當我有@widget
,擺脫我的助手,我需要使用user_widget_path(@widget.user, @widget)
正確的路由有什麼辦法告訴導軌自動從@widget
對象中拉出用戶?所以我可以使用user_widget_path(@widget)
@apneadiving是完全正確的。但是你可以改善一點你的方法:
link_to "user", user_widget_path(@widget.user, @widget)
可呈現更短:
link_to "user", [@widget.user, @widget]
UPD
而且,只要你想,你可以重寫user_widget_path
:
class ApplicationController < ActionController::Base
helper_method :user_widget_path
private
def user_widget_path(widget)
super(widget.user, widget)
end
end
您還應該重寫edit_user_widget_path
,new_user_widget_path
。最好把它作爲外部模塊來包裝。
這正是我寫的幫手! +1;) – apneadiving
沒有自動方法來做到這一點。但是你可以創建你自己的應用程序幫手,它非常直白。
根據反饋,聽起來好像沒有內置軌道的方式來做到這一點。雖然基於贊成票聽起來像是它會是默認路由助手的體面添加 – Schneems