我从一段时间开始学习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.):
答案 0 :(得分:0)
我假设快乐的案例场景给你指路。我认为你很接近,但你需要做一些调整
来自摘录
<% @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")) %>');