gpt4 book ai didi

jquery - rails 3 : jquery to change partials

转载 作者:行者123 更新时间:2023-12-01 02:23:50 25 4
gpt4 key购买 nike

rails 新手,我想了解一些有关 jquery 的知识,所以我想尝试使用 AJAX 在部分 View 之间切换。

现在在我的用户的破折号上,我有一个指向他们的“喜欢”页面的链接,它需要完全重新加载才能看到“喜欢”页面,我如何更改它以使用 likes_user_path@user 刷新)?

views/pages/home.html.erb

  <div id="left">
<div id="dash-statistics">
<a href="<%= likes_user_path(@user) %>">
<div id="likes" class="stat">Likes
<%= @user.likes.count %>
</div>
</a>
</div>
</div>

<div id="right">
<div id="content">
</div>
</div>

用户 Controller

  def likes
@title = "Likes"
@user = User.find(params[:id])
@like_stuff = @user.likes.paginate(:page => params[:page])
render 'show_likes'
end

最佳答案

据我了解,您希望通过使用 ajax 在用户仪表板中单击链接来重新加载点赞

首先要做的是重写链接,并添加 :remote => true ,如下所示:

<%= link_to "Likes", likes_user_path(@user), :remote => true %>

然后,在你的 Controller 中,确保顶部有一个 respond_to :html, :js (当然可以有其他选项,但 :js 有成为其中之一)

之后,您可以在 Controller 中执行一个名为 likes 的函数,用于加载喜欢的内容,它看起来像您的,只是您不执行 render 最后,但是 respond_with @likes。通过在 respond_to 过滤器中添加 :js,Rails 将在需要时自动采取相应的行动。

接下来,创建一个名为 likes.js.erb 的相应 View (我不确定在这种情况下 CoffeeScript 是否可以开箱即用),在其中放置类似的内容

$('#likes').html('<%= escape_javascript(render "likes", :likes => @likes) %>');

这假设在您想要渲染点赞的主视图中,有一个带有 id=likes 的元素,如下所示:

<div id="likes">
<%= render "likes", :likes => @likes %>
</div>

还有一个 _likes.html.erb 部分,用于渲染点赞

<% likes.each do |like| %>
<div>
<%= like.name %>
</div>
<% end %>

至此,我想我已经基本涵盖了它。

关于jquery - rails 3 : jquery to change partials,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7865198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com