2010-11-18 213 views
2

在我的Rails應用程序3,我有這顯示了一個路線調用rake路線如下:沒有路由匹配控制器

topic_snippets GET /topics/:topic_id/snippets(.:format) {:action=>"index", :controller=>"snippets"} 

在routes.rb中

resources :topics do 
member do 
    get 'get_topics' 
end 
resources :snippets, :only => [:index] 
end 

在我看來,我如下所示(其中@name =「snippets」):

<%= send("topic_#{@name}_path")%> 

執行上一行時,出現以下路由錯誤:n加時賽知道爲什麼:

No route matches {:controller=>"snippets"} 

更新:我發現他們的反應似乎暗示着上面的應該工作了另一個問題:Dynamically construct RESTful route using Rails

謝謝
阿南德

+0

但是'@ topic'是什麼,也許更重要的是,該對象的'id'是什麼? – 2010-11-18 18:12:49

+0

@topic參數似乎不相關 - 即使我將其刪除,也會得到相同的錯誤。 – Anand 2010-11-18 18:33:45

+0

我剛剛從問題 – Anand 2010-11-18 18:34:13

回答

3

好吧,我發現了 - 瑞恩的評論提供了線索。

我沒有通過@topic,這是必需的。如果我刪除了@topic,它會試圖在/ snippets /中找不到路由。在調用這一行之前,我將@topic設置爲一個有效的主題,並且它可以工作。謝謝,瑞恩!

0

你試過

<%= send(eval("topic_#{@name}_path"), @topic)%> 
+0

我嘗試使用eval - 它給了我同樣的錯誤,除了這次它顯示了軌道代碼中導致路由錯誤的位置。 – Anand 2010-11-18 18:00:38

相關問題