2012-07-03 77 views
0

我已經搜索並嘗試了一堆不同的東西。沒有工作。我在路線中錯過了什麼導致這個錯誤?導軌路由沒有路由匹配{:action =>「revert」,:controller =>「the_name」

resources :the_name do 
    member do 
    get 'revert' 
    end 
end 

在我的控制器

def revert 
    ... 
end 

我的觀點是呼籲

revert_the_name_path(@some_var) 

@some_var只是模型的實例。 IE:@some_var = SomeModelName.new

我已經試過

resources :the_name do 
    collection do 
    get 'revert' 
    end 
end 
+0

做'耙路線| grep恢復'。可以幫助你調試。你一定需要'member'而不是'collection'。 – Robin

回答

0

此,如果您的實例是新的記錄(如SomeModelName.new)

您需要ID生成的成員將無法正常工作路徑。確保@ some_var.id不是零。

+0

好吧,所以這似乎只是當我去新的路線發生。 –

+0

好,所以這使得完美,因爲...謝謝。要解決我的senario我只是檢查,看看我是否編輯記錄或創建一個新的通過添加此代碼在我的看法:if controller.action_name =='編輯' –

+0

我很高興,如果它確實有幫助。我不能說我真的明白你在哪裏以及爲什麼要生成這個鏈接,但是,不是使用'if controller.action_name =='edit'',你也可以使用'unless @ some_var.new_record?'。 –

相關問題