我对编码很新。 我正在尝试找到一个解决方案,我可以在单独的链接点击中在同一个DIV中渲染多个部分。
到目前为止,我可以在div(部分1)中渲染一个部分,但是当我点击其他链接时,我仍然坚持如何渲染其他部分。
这是我目前的代码
在views/layouts/_sidebar.html.erb
我有
<li>
<%= link_to user_path(current_user), :remote => true do %>
<i class="glyphicon glyphicon-home"></i> Partial1
<% end %>
</li>
<li>
<%= link_to user_path(current_user), :remote => true do %>
<i class="glyphicon glyphicon-flash"></i> Partial2
<% end %>
</li>
在users_controller.rb
我有
class UsersController < ApplicationController
before_action :authenticate_user!
def show
@user = User.find(params[:id])
@user_partial1 = @user.1partials
@user_partial2 = @user.2partials
respond_to do |format|
format.html { @user_partial1 }
format.js { render :show }
end
end
end
在users/show.html.erb
我有
<div id="usercontent"></div>
应该呈现部分内容。
在view/users/show.js.erb
中有此代码
$("#usercontent").html("<%=escape_javascript(render :partial=>"shared/partial1")%>");
这段代码可以很好地在一个div中只渲染一个部分但我无法弄清楚如何在点击相关链接时渲染#usercontent
div中的其他部分。
有人可以帮帮我吗?
答案 0 :(得分:0)
您可以将参数与link_ to
<li>
<%= link_to user_path(current_user,partial: '1'), :remote => true do %>
<i class="glyphicon glyphicon-home"></i> Partial1
<% end %>
<li>
<%= link_to user_path(current_user,partial: '2'), :remote => true do %>
<i class="glyphicon glyphicon-flash"></i> Partial2
<% end %>
</li>
在你的控制器中,你可以得到部分渲染的值:
@partial_to_render = params[:partial]
并在view/users/show.js.erb
$("#usercontent").html("<%=escape_javascript(render :partial=>"shared/partial" + @partial_to_render)%>");
如果您需要将内容附加到#usercontent
div中的现有html,请使用Jquery append而不是$(“#usercontent”)。html()。