这是我的表单,它工作正常,但现在我想 AJAX 它。
<%= form_tag variant_path(variant.id), :method => :put, :class => 'update_inv_form' do %>
<%= text_field_tag :inventory_quantity, variant.inventory_quantity %>
<%= submit_tag 'Update' %>
<% end %>
当我添加 :remote => true 属性时,表单通过 AJAX 成功提交(我可以看到它在服务器上发生,刷新页面时我可以看到更改)。我想正确更新视图以显示更改而不刷新页面。这是我的更新操作:(请注意,我在这里没有使用 ActiveRecord 模型。)
def update
variant = ShopifyAPI::Variant.find(params[:id])
variant.inventory_quantity = params[:inventory_quantity]
variant.save
redirect_to root_path
end
更新
感谢您帮助我解决这个问题的答案,结果证明解决方案与他所说的完全一样,但是我遇到了一个小问题。我想要更新的视图存在app/views/home/index.html.erb
并且我正在处理这个:Variants#update。(变体控制器,更新操作)
我将 update.js.html 放在与我的视图相同的目录中:app/views/home
并且我的服务器抛出 500 错误:缺少模板。事实证明,我必须创建一个app/views/variants/
目录并将 update.js.html 文件放在那里。问题解决了。