2011-01-23 86 views
2

好吧,在這裏得到一個相當奇怪的路由錯誤。「沒有路由匹配」的錯誤,但耙路徑發現它

No route matches {:controller=>"subscriptions", :action=>"change"} 

Extracted source (around line #22): 

19:  <td><%= s.product.name %></td> 
20:  <td><%= s.calc_time_to_next_arrival %></td> 
21:  <td> 
22:   <%= form_for(:subscription, s, :url => { :action => "change" }, :id => s) do %> 
23:    <%= label_tag(:q, "Days to delay:") %> 
24:    <%= text_field_tag(:query) %> 
25:    <%= check_box_tag(:always) %> 

然而,如果我跑耙的路線,這是我所得到的

change_subscription GET /subscriptions/:id/change(.:format {:controller=>"subscriptions", :action=>"change"} 

相當肯定,意味着它應該有。不知道發生了什麼事。

這裏就是路由在routes.rb中

resources :subscriptions do 
    member do 
     get 'change' 
    end 
    end 

說這裏的控制器,雖然用於訂閱

def change 
    @subscription = Subscription.find(params[:id]) 
    @subscription.change(:query, :always) 
    redirect_to :back 
    end 

回答

4

這應該是 post 'change',而不是 get 'change'

爾當然,我的意思是put 'change'

如何:

<%= form_for s, :url => change_subscription_path(s) do |f| %>

+0

已經試過了。再試一次,然後重新啓動服務器以獲得更好的效果。耙路線的輸出已正確更新,仍然出現此錯誤。 (同樣,試圖「放」只是爲了咯咯地笑) – 2011-01-24 00:03:25

相關問題