2011-11-22 50 views
1

嵌套的路線我想提交一個表單,並繼續運行到這個錯誤:沒有路由匹配[POST]在的form_for助手

No route matches [POST] 

這裏是我的形式:

<%= form_for(@issue) do |f| %> 
    <%= render 'fields', :f => f %> 
    <div class="actions"> 
     <%= f.submit "Submit" %> 
    </div> 
<% end %> 

和我的路線:

resources :apps do 
    resources :issues 
    end 

我想我錯過了什麼與定義哪個應用程序它在form_for但我不知道?

這裏是我的問題,創建行動:

def create 
    @issue = Issue.new(params[:issue]) 
    @issue.app_id = params[:app_id] 
    if @issue.save 
     flash[:success] = "Issue added!" 
     redirect_to @issue 
    else 
     render 'new' 
    end 
    end 

回答

2

你需要把應用程序的形式爲好。因爲你有嵌套在應用程序中的問題。

<%= form_for([@app, @issue]) do |f| %> 
    <%= render 'fields', :f => f %> 
    <div class="actions"> 
    <%= f.submit "Submit" %> 
    </div> 
<% end %> 

因爲你有你的路由這樣apps/:app_id/issues/:issues_id你需要在你的控制器來獲取@app。

你可以用這個命令檢查可用的路線:rake routes

+0

確定這工作,但現在我試圖創建重定向發出後發出的時候得到一個沒有methoderror。我將問題控制器操作創建添加到原始問題,我在那裏做錯了什麼? –

+0

就像這樣,'redirect_to apps_issues_path(@ issue.app_id,@ issue.id)'因爲你在應用中嵌套問題,所以當你正在處理你的問題時,你總是需要你的應用。您可以查看所有可用路線的「耙路線」。 –

相關問題