【问题标题】:Whats the most efficient way to update a partial after an AJAX form submit in Rails 3在 Rails 3 中提交 AJAX 表单后更新部分的最有效方法是什么
【发布时间】:2013-03-20 23:10:01
【问题描述】:

我有一个页面,代码如下:

<div>
<%= render 'form' %>
</div>

<div id="item_container">
<%= render @item %>  
</div>

其中 form 是“@item”的表单,“render @item”呈现代表“@item”的部分。表单使用 remote: :true 并使用 AJAX 提交。

Rails 3 中最简单、最有效的方法是在提交表单时更新整个 @item 部分。

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 forms partial


    【解决方案1】:

    在您的控制器操作中,您需要添加一个 respond_to 块

    respond_to do |format|
      format.html
      format.js
    end
    

    您可以编写一个视图,在其中直接编写 javascript 代码(假设您的操作名称是“更新”)

    update.js.erb

    $('#item_container').html('<%= j render(@item) %>');
    

    注意 JS 响应中转义的 'j'

    【讨论】:

    • 我在其他地方看到了许多复杂的解决方案。但这是简单而完美的。谢谢
    • 更多信息:railscasts.com/episodes/136-jquery 这是 2008 年的 Rails 演员阵容,但会为您指明正确的方向
    • 这仍然是达到这种效果的最佳方式吗?我在整个应用程序中都使用这种模式,但想知道我是否应该使用类似 Stimulus 的东西。你怎么看?
    • 是的。仍然有效;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    相关资源
    最近更新 更多