2016-08-03 31 views
0

未初始化不斷在檢查submit我得到Routing Error: uninitialized constant DuelersController路由錯誤:根本不存在的控制器

duels/show.html.erb

The loser(s) will <%= @duel.consequence %><br><br> 
If everyone succeeds they will <%= @duel.reward %> 
<%= form_for @dueler do |f| %> 
    Accept? <%= f.check_box :accept %> 
    <%= f.submit %> 
<% end %> 

沒有DuelersController只有DuelsController

def show 
    @dueler = Dueler.find_by(user_id: current_user.id) 
    respond_with(@duel) 
end 

def set_duel 
    @duel = Duel.find(params[:id]) 
end 

一旦user點擊submit我該如何將用戶重定向回顯示頁面?

Dueler.last 
id: 20, 
user_id: 78, 
challenge_id: 178, 
duel_id: 13, 
accept: nil> # For example redirect back to duels/13 with accept: true 

回答

1

對不起,我分心了。我認爲你的問題實際上是另一個問題,你必須在這裏明確指定控制器和操作。 在一個側面說明,也許你不得不改變你的魂在set_duel行動的參數的方式(我不記得是否導軌自動設置ID),反正:

#Assuming you want to call set_duel upon submission 
<%= form_for @dueler, :url => { :controller => "duel", :action => "set_duel" }, :html => {:method => :post} do |f| %> 
    Accept? <%= f.check_box :accept %> 
    <%= f.submit %> 
<% end %> 
+0

我有一個'dueler '和'決鬥'模型。 '決鬥''has_many:應付者'。有沒有一種方法可以讓用戶更新應用程序的'redirects_to'決鬥顯示頁面? –

+0

render'duels/show',將編輯答案 – fabriciofreitag

+0

這給出了同樣的錯誤作爲問題:/澄清我試圖做到這一點,而不創建一個「DuelersController」。感謝您的嘗試! –