次のような form_for があります。
<%= form_for (@product||(Product.new([some params])), :remote => true, :as => :product_data, :url => {:controller => :products, action: :update}, :html => {:class => 'form-horizontal'} do |f| %>
...
<%= f.submit %>
私のコントローラーには、「更新」アクションがあります。
@product が既に存在する場合、フォームは正常に機能しています。コントローラーの「更新」アクションに送信します。@product が存在しない場合、新しい一時製品インスタンスが作成されますが、フォームを送信しても保存されません。その結果、ページの更新時に情報が失われます。
@product が存在する場合は「更新」し、同じフォームを使用して @product が存在しない場合はフォームで新規作成 + 更新するにはどうすればよいですか?
解決済み:
私が追加した製品コントローラの更新アクションで:
product = Product.where(some params).first rescue nil
if product.blank?
product = Product.create(some values)
end