2016-07-27 182 views
1

你好我是試圖建立一個第一種基本形式,並正在以下錯誤,當我提交表單:No route matches [POST] "/"Rails的路由錯誤沒有路由匹配[POST]「/」

這裏是形式(我知道我可以使用的form_for,但我試圖做到這一點沒有):

<form accept-charset="UTF-8" action="<% articles_path %>" method="post"> 

    <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>"> 
    <input type="text" name="title" placeholder="title"> 
    <input type="text" name="body" placeholder="body"> 
    <input type="submit"> 

</form> 

這裏是我的routes.rb:

Rails.application.routes.draw do 


    resource :articles, only: [:new, :create] 
    root to: 'articles#new' 
end 

這裏是我的路線:

articles_path POST /articles(.:format) articles#create 
new_articles_path GET /articles/new(.:format) articles#new 
root_path GET/ articles#new 

我不明白的是,我的表單操作是articles_path與post方法,並且應用程序正在尋找到根路由的Post請求。它不應該去我的articles_path郵政路線?當我從articles/new提交表單時,會發生同樣的情況,除非它沒有指示文章/新的路由POST。

我檢查了其他類似的問題,解決方案總是與表單操作有關,據我所知,我有權利,所以我想我會問自己的問題。

回答

1

您在<% articles_path %>中缺少=。你<form>標籤應該是:

<form accept-charset="UTF-8" action="<%= articles_path %>" method="post"> 

沒有=,HTML輸出將不包含action="",造成的形式張貼到當前頁面的URL。

+0

謝謝你解決了它。 – srlrs20020

+0

@ srlrs20020嘗試使用'form_for'來代替,將來可能會更容易一點。 – fbelanger

相關問題