繁体   English   中英

使用Ajax或jQuery使Rails应用程序中的表元素与页面分开

[英]Use Ajax or jQuery to Make Table Element in Rails App Load Separate From Page

我有一个包含用户站点列表的页面,在该页面上我正在进行API调用,以检查每个站点的状态。 问题在于,它会使页面永久加载,因此我希望页面加载完毕,然后在使用AJAX或jQuery完成检查后更新该表元素。 虽然我对AJAX或jQuery不太满意,但我一直在阅读的所有Rails / Ajax教程似乎都涉及存储在数据库中的表单和数据。 这是我的表格元素:

我观点的一部分

<td>
    <% if HTTParty.get(site.domain + 'api')["status"] == "ok" %>
        OK
    <% else %>
        Error
    <% end %>
</td>

控制器动作加载视图

def sites_page
    @sites = Site.where(user_id: current_user.id)
    render 'sites_page'
end

如上所述,如何分别进行此装载? 我知道我还没有尝试过的代码,但是我真的不知道从哪里开始。

谢谢你的帮助。

只需在窗口加载时将AJAX调用附加到td,它将在页面呈现后稍后进行评估。 AJAX调用可以是这样的:

  $(window).load(function() {
    var target = $(".td-that-will-be-evauated-later")
    url = target.data("url")

    $.ajax({
      url: url,
      type: "GET",
      dataType: "json",
      success: function(result){
        target.html(result.body)
      },
      error:  function(xhr, status, error) {
        $(target).html("error");
      }
    })    
  })

网址应指向控制器操作,该操作将为特定用户获取信息,例如:

class UsersController < ActionController::Base
  def fetch_info
    @user = User.find(params[:id])
    @response = @user.fetch_info
    render json: {success: true, body: response.body}
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM