我在Rails 4中使用remote:true創建了一個ajax表單。由於某種原因,我錯過了,我的驗證錯誤沒有顯示在窗體中。Rails遠程表單驗證錯誤未顯示
這裏是我當前的代碼庫:
1.表
= simple_form_for @foo, url: foos_path, as: :foo, remote: true do |f|
.row
.input-field
= f.input :bar
.right-align.card-button
= f.button :submit, class: "waves-light blue", data: { disable_with: "Loading..." }
2. create.js.erb
$("#new_foo").html('<%= j render_cell :foo, :form, foo: @foo %>');
3.控制器
def create
@foo = FooForm.new(Foo.new)
respond_to do |format|
if @foo.validate(params[ :country ])
@foo.save
format.html { redirect_to root_path }
format.json { render :show, status: :created, location: @foo.model }
format.js
else
format.html { render :new }
format.json { render json: @foo.errors, status: :unprocessable_entity }
format.js
end
end
end
我希望這個代碼後顯示驗證錯誤的提交不正確。然而由於某種原因,不正確的提交後沒有任何反應我可以確認表單正在提交,但是由於提交的內容是在日誌中處理的,我也可以確認當我刪除遠程提交時,表單工作得很好。
有什麼我失蹤?
PS。我使用的是Reform gem,這可能會讓我的控制器目標代碼對很多人來說似乎有點不熟悉。我在我的js文件使細胞按本gem
UPDATE 我有這個掙扎更多一些。我實現了一個解決方案,我已經複製了一個「遠程:真實」的解決方案,我已經在之前的應用程序中逐步構建了這個解決方案。這在我以前的應用程序中完美運行,但不會在我的新應用程序中顯示驗證錯誤。這兩個應用程序唯一的區別是Ruby和Rails的版本。
在第一個應用程序,我跑的Ruby 2.2.1和Rails:4.2.2。我的新應用程序('我無法工作')我運行Ruby:2.2.3與Rails:4.2.4。
莫非這或許有一定影響?
我從你的答案中瞭解到了'render_cell',謝謝 –
你能通過瀏覽器發佈確切的HTML響應嗎?有趣的是它是如何工作,而不是'遠程' –
@RichPeck感謝您的回覆。很高興我能幫上忙。這是一個偉大的小寶石,它幫助我清理了我的代碼。我不清楚你到底在問什麼?我已經更新了一些更詳細的問題。 – Herm