【问题标题】:Rails AJAX shortcut?Rails AJAX 快捷方式?
【发布时间】:2014-04-26 01:43:55
【问题描述】:

在表单或其他东西上使用remote:true,并使用:js从控制器响应,我们可以告诉rails执行一些javascript文件。

例如,如果您要销毁用户。您将拥有 User 控制器和 Destroy 操作。然后,您将拥有一个文件 views/users/destroy.js.erb,其中包含以下内容:

$("ul#users").html("<%= j render partial: 'user_list' %>");

我的问题是...是否有一个快捷方式可以将该 javascript 放入控制器中,这样我就不必在我的应用程序中乱扔这些小文件?如果我只是用一些实例变量渲染一个部分,而不是别的,我希望看到类似的东西:

respond_with render :js, with: 'partial_foo', on: '#selector .bar'

有这样的捷径吗?

【问题讨论】:

    标签: javascript ruby-on-rails ajax


    【解决方案1】:

    我可以为您推荐的唯一shortcut 是使用json 并使用您不显眼的 JS 处理响应:

    #view
    <%= form_for @variable, remote: :true, method: :json %>
    
    #controller
    respond_to :json, :html
    
    def action
        respond_with @variable
    end
    

    JSON 发送小的序列化数据对象,这意味着您不必处理任何文件,并且可以根据需要处理数据:

    #app/assets/javascripts/application.js
    $(element).on("ajax:success", function(data) {
        message = JSON.stringify(data);
        alert(message.attribute);
    });
    

    如果你喜欢这个想法,我可以回来提供一些处理部分的想法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2011-02-25
      • 2011-12-06
      • 1970-01-01
      相关资源
      最近更新 更多