簡體   English   中英

Rails response_什么都沒有?

[英]Rails respond_with nothing?

我的一個控制器中有一個create動作,它響應ajax和html請求。 在create動作中,我使用find_or_initialize_by_such_and_such設置了實例變量(@location)。 然后,我使用以下方法測試該位置是否已存在:

if @location.id.nil?
  @location.save
  respond_with(@location, :location => root_path) do |format|
    format.html { redirect_to root_path }
  end 
end

之所以能正常工作,是因為基本上,部分(create.js.erb)將新保存的位置對象追加到列表中。

當用戶輸入一個已經存在的位置(即具有ID)時,就會出現問題。 在這種情況下,我不希望將找到的位置追加到列表中,因為這會導致重復(所有位置都已經存在)。 由於@location.id.nil? 在那種情況下是錯誤的,上面代碼塊中的代碼顯然沒有執行,但是我很難弄清楚如何處理這種情況。 我嘗試做類似的事情:

respond_with(nil, :location => root_path) do |format|
  format.html { redirect_to root_path }
end 

但是js.erb文件仍然抓取@location實例變量並執行將對象添加到列表的javascript。

因此,解決此問題的最佳方法是什么,以便在find_or_initialize_by返回已創建的對象的情況下,響應將不會執行javascript將此對象追加到列表中?

去掉

respond_with(nil, :location => root_path) do |format|
  format.html { redirect_to root_path }
end 

只留下這個

redirect_to root_path

如果您沒有其他回應

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM