javascript - 使用 AJAX 更改部分内容

标签 javascript jquery ruby-on-rails ajax

我学习 Ajax 有一段时间了,顺便说一下,这很棒,所以我并不是真正的专家。所以我需要一些建议。

我目前正在构建一个群组系统。我有一个选项卡系统来区分您自己的组和其他组。我想要知道的是编写一个ajax脚本将我的部分组从一个选项卡发送到另一个选项卡。例如,当用户退出群组时,我的群组将会消失,而会出现在“其他”选项卡中。

我成功了第一步,但我真的不知道如何将表单发送到另一个选项卡。 正如您在下面看到的,我尝试发送 id,但没有包含部分形式。所以它只是渲染我的组的 id。 有什么建议包括部分 (_group2.html.erb) 吗?

我的代码:

索引(组):

<div class="panel-body">
    <div class="tab-content">
      <div class="tab-pane fade in active" id="tab1default_group" style="padding:0px;">
        <div class="group_area">
          <% @my_groups.each do |group| %>
            <div class="group_box<%=group.id%>">
              <%= render 'group', group: group %>
            </div>
          <% end %>
        </div>
      </div>
      <div class="tab-pane fade in" id="tab2default_group" style="padding:0px;">
        <div class="group_area2">
          <% @groups_out.each do |group| %>
            <div class="group_box2<%=group.id%>">
              <%= render 'group2', group: group %>
            </div>
          <% end %>
        </div>
      </div>
    </div>
  </div>

rem_req.js.erb(组):

$(".group_box<%=@group.id%>").fadeOut();
$(".group_area2").append('<%= render partial: @group2 %>');

Groups_controller:

  def rem_req
    if @group.groupes_admin.count == 1 && @group.groupes_admin.where(user_id: current_user).any?
      flash[:error] = "Vous devez définir un nouvel Admin ou supprimer ce groupe"
    else 
      RemReqGroupJob.perform_later(current_user, @group)
      flash[:error] = "Vous ne faites plus parti de #{@group.name}"
      @group2 = Group.where(id: @group.id).last
    end
    respond_to do |format|
      format.html { redirect_back }
      format.js
    end
  end

当我尝试运行它时,出现此错误:

ActionView::Template::Error ('nil' is not an ActiveModel-compatible object. It must implement :to_partial_path.):

最佳答案

我假设一个快乐的案例场景来给你指导。我认为你已经很接近了,但你需要做一些调整

来自片段

<% @groups_out.each do |group| %>
  <div class="group_box2<%=group.id%>">
    <%= render 'group2', group: group %>
  </div>
<% end %>

第一步<div class="group_box2<%=group.id%>">..</div>也在 group2部分。

然后替换 $(".group_area2").append('<%= render partial: @group2 %>'); $(".group_area2").append('<%= j(render(partial: "group2")) %>');

关于javascript - 使用 AJAX 更改部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45147410/

相关文章:

javascript - 更新字体大小后不计算新的 offsetHeight

javascript - 在 PDFKit 中旋转文本有什么技巧吗?

javascript - 在iMacro中连续寻找DIV

ruby-on-rails - 从另一个本地分支推送到 heroku

ruby-on-rails - Rails - 应该如何组织他们的模型代码?

javascript - JSON回调问题

javascript - 选择特定链接后如何在同一位置显示五个视频之一?

javascript - 单击颜色更改和图形尺寸 [JS]

javascript - Bootstrap collapsible 第一次后不工作

ruby-on-rails - rails + Postgis : error cannot drop table spatial_ref_sys