我創建的窗體在模態窗口中未顯示時效果很好。當我將它插入模態時,突然POST正在錯誤的地方尋找路徑。Rails無法找到模態窗體的POST路徑
我已經搜遍了關於SO的問題,並閱讀了路徑和控制器的RAILS指南和API文檔,但找不到答案。我試圖在表單中指責「:remote => true」 - 似乎有可能需要向控制器添加某些內容 - 但我找不到。
下面是從控制器的耙路由的路由:
messages POST /messages(.:format) messages#create
new_message GET /messages/new(.:format) messages#new
routes.rb中:
resources :messages, only: [:new, :create]
控制器:
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
redirect_to root_path, :notice => "Thanks! Your message was sent."
return
else
render :new
end
end
end
表單標籤(形式顯示和精美的作品,除了發送):
<%= form_for(:message, :remote => true) do |form| %>
從導航:從日誌
<%= link_to('Contact', new_message_path, :class => 'contact', :remote => true, 'data-toggle' => "modal", 'data-target' => '#myModal') %>
POST錯誤:
Started POST "/messages/new" for 127.0.0.1 at 2013-12-12 14:33:43 -0800
ActionController::RoutingError (No route matches [POST] "/messages/new"):
POST as它發生在工作,無模式的版本:
Started POST "/messages" for 127.0.0.1 at 2013-12-12 14:27:50 -0800
Processing by MessagesController#create as HTML
日誌文件條目從點擊「聯繫」:
Started GET "/messages/new" for 127.0.0.1 at 2013-12-12 14:33:37 -0800
Processing by MessagesController#new as JS
Rendered messages/_form.erb (5.1ms)
Rendered messages/_new.erb (7.7ms)
Rendered messages/new.js.erb (10.7ms)
Completed 200 OK in 17ms (Views: 14.2ms | ActiveRecord: 0.0ms)
什麼是做的就是POST工作正確的事情?
能否請您包括請求啓動日誌條目當你點擊「聯繫我們」鏈接?自從我與Rails的UJS處理程序合作已經有一段時間了,但這可能會有所幫助。 – janfoeh
我編輯了問題以包含來自「聯繫人」的點擊。 – Deborah
謝謝。你的'new.js.erb'看起來如何? – janfoeh