Rails新手在这里。我想学习一点jQuery,所以我想我会尝试使用AJAX在我的视图之间切换。我真的很期待有关如何做到这一点的见解!
现在,在我的用户短划线上,我有一个指向“赞”页面的链接,需要完整重新加载以查看“show_likes”视图,如何使用新视图'show_likes刷新div id =“content” '??
谢谢!
视图/页/ 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>
UsersController
def home
@title = "Home"
if user_signed_in?
@user = current_user
@post = current_user.posts.build
@collections = @user.posts.map(&:collections).flatten.uniq
@recommended_posts_count = @user.posts.where(:is_recommended => true).count
@feed_items = @user.feed.paginate(:per_page => "10", :page => params[:page])
end
end
def likes
@title = "Likes"
@user = User.find(params[:id])
@like_stuff = @user.likes.paginate(:page => params[:page])
render 'show_likes'
end
答案 0 :(得分:0)
有几个选择。
UJS的方式是link_to
:remote => true
。有关详细信息,请参阅this post。
This blog post进入更多细节,但有点沉重,并讨论了一个可能或可能不符合您的喜好的特定实现。
答案 1 :(得分:0)
你应该添加:remote =&gt;对您的链接为true,然后在您的视图中创建likes.js.erb文件。还要添加
respond to do |format|
format.js
end
到你的控制器方法。 在js.erb文件中,您可以混合使用javascript和ruby,并根据需要显示/隐藏/替换div。您应该查看jquery提供的方法(例如replaceWith)来修改div。