我有一個足智多謀的路線後的路線,用post
路線嵌套在:URL幫手在資源
resources :groups, :only => [:index, :show] do
post 'send_audit_reminder', :on => :member
end
如果我運行rake routes
,這條路線顯示出來就好了:
send_audit_reminder_group POST /groups/:id/send_audit_reminder(.:format)
{:controller=>"groups", :action=>"send_audit_reminder"}
但是,我似乎無法弄清楚如何參考給定路線的send_audit_reminder
URL。我試過send_audit_reminder_group_path(@group)
和send_audit_reminder_url(@group)
,這既給我下面的錯誤:
No route matches {:controller=>"groups", :action=>"send_audit_reminder"}
正如你可以看到rake routes
,的確有這些參數相匹配的路由,並且也有在控制器上的匹配方法。
如何找到此路線的路徑或URL?我不想硬編碼它,因爲我們的應用程序被部署到同一虛擬主機上的子目錄中,所以硬編碼的絕對路徑將不起作用。
我將在哪裏查找有關此文檔或將來的信息?由於這些路徑和URL助手方法是從我的路由生成的,所以我顯然無法查找文檔,並且rake routes
告訴我路由在那裏,當我嘗試獲取URL時,它似乎並不存在。
不,我正在通過該組。我會更新我的問題來澄清這一點。 –
非常棘手,特別是如果定義了「@ group」。您的'routes.rb'中沒有任何內容可能會阻止該部分運行?沒有條件?有時候寫''assert_routing'功能測試是值得的,並驗證你的自定義路由的工作。 – tadman
我的'routes.rb'很簡單,一個'root:to =>重定向(「/ groups」)',一些足智多謀的路線和一個顯示的路線,這些路線被剝奪了一些嵌套的資源,我認爲它們可能不相關,因爲它們沒有名稱衝突的可能性。沒有條件。我會嘗試編寫功能測試;我的測試基礎架構目前似乎已經崩潰,所以我需要在解決這個問題之前先解決這個問題。 –