我的一個表單有一個奇怪的問題。該表單僅更改該對象的一個變量,稱爲admin_comment。它在控制器的顯示方法結束時,在終端:Rails form_for錯誤的方法
Processing by EnrolmentsController#show as
這裏是form_for
<%= form_for enrolment, :url => enrolments_admin_comment_path(enrolment), method: :get, remote: true do |f| %>
這裏是耙路線
enrolments_admin_comment GET /enrolments/admin_comment(.:format) enrolments#admin_comment
而routes.rb部分
get "enrolments/admin_comment"
resources :courses do
resources :enrolments
end
當我從form_for中刪除method: :get
部件時,它以更新方法結束。 其他與註冊控制器/模型的其他工作正常。有人知道這裏發生了什麼嗎?謝謝!
更新 經過幾乎瘋了,我得到它的工作是這樣的,但只有:作爲方法。
routes.rb
get "/enrolments/:id/admin_comment" => "enrolments#admin_comment", as: "enrolments_admin_comment"
form_for
<%= form_for enrolment, :url => enrolments_admin_comment_path(enrolment), method: :get, remote: true do |f| %>
如果我改變方法:後,我收到以下錯誤:
ActionController::RoutingError (No route matches [POST] "/enrolments/28/admin_comment"):
兩個問題上來: 1。我需要改變什麼才能使用它:post? 2.據我所知,如果我只是陳述控制器和動詞(:get /:post/...),那麼rails會知道在將動詞映射到方法時必須使用哪種方法。但是當我陳述整個路徑(控制器和方法)時,不應該在沒有動詞的情況下知道它需要的一切嗎?無論如何,這個表單參數正在發送。
UPDATE2 好吧,我已經改變了
get "/enrolments/:id/admin_comment" => "enrolments#admin_comment", as: "enrolments_admin_comment"
到
post "/enrolments/:id/admin_comment" => "enrolments#admin_comment", as: "enrolments_admin_comment"
現在一切工作正常。
嗯,是的,如果你使用':get',你就會調用'#show'。這是多麼平靜的資源工作。這裏有什麼問題? –