【问题标题】:Rails HTML Table update fields in mongo with AJAXRails HTML Table 使用 AJAX 更新 mongo 中的字段
【发布时间】:2012-11-24 16:54:41
【问题描述】:

我正在使用 mongoid 构建一个由 mongodb 支持的 Rails 应用程序。

这是一个单页应用程序,带有一个 HTML 表格,其中每一行的每个字段都需要在不刷新页面的情况下进行编辑。

这是你常用的 Rails 视图(就像许多 Rails 强制转换一样),显示一个包含数据的行和列的表。

例如。我正在展示汽车,并展示它们的品牌、型号和备注

我这样做的方式是将 mongo 文档的 _id 附加到每一列,并在 html id 中标记它的字段名称。然后我获取 $("#id") 的值并通过 AJAX 将其发送到 rails 控制器并相应地运行 @car.update_attributes 方法。

目前,我的一行看起来像这样。

    <tr>
       <td id=<%= car.id %>_make>
       <%= car.make %>
       </td>

       <td id=<%= car.id %>_model>
       <%= car.model %> 
       </td>

       <td id=<%= car.id %>_notes>
       <%= car.notes %>
       </td>
     </tr>

     // my function which is called onChange for every column
     function update_attributes(id){
        var id = id.split[0];
        var attribute = id.split[1];
        $.ajax("sending id and attribute to rails controller");
     }

是否有任何内置的 Rails 魔法可以让我只更新模型中的字段而不刷新页面?

或者。

有这方面的 Rails 插件吗?

【问题讨论】:

    标签: ruby-on-rails ajax mongodb mongoid


    【解决方案1】:

    还有一个名为rest_in_place 的宝石是专门为此目的而制作的。您将需要做很少的配置来执行就地编辑。你的控制器只需要拥有所有的 restfull 方法。

    【讨论】:

      【解决方案2】:

      对于您所描述的内容(以单页 ajax 为中心的应用程序),我强烈建议您使用 backbone.js。您也可以通过其他更简单的 gem(甚至手动编写 jquery ajax)来完成此操作,但我发现您在以 ajax 为中心的应用程序中很快就会变得杂乱无章。 Backbone.js 的最大优点之一是它使您的 ajax 代码井井有条。尝试使用backbone-rails gem,借助出色的内置脚手架,它可以让您在几分钟内启动并运行。

      为了更直接地回答您的问题,在您正在寻找的意义上,ajax 并不是 Rails 的“内置”,但是有一些宝石可以帮助您更轻松地做到这一点(例如骨干导轨) .

      【讨论】:

        猜你喜欢
        • 2016-07-25
        • 1970-01-01
        • 2019-03-22
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2020-07-19
        • 2017-11-10
        • 2019-02-16
        相关资源
        最近更新 更多