寻找实现这一点的最佳方法。目前我有一个用户的“显示”页面 - 显示所有用户的图片。
def show
@user = User.find(params[:id])
@pictrues = @user.pictures
end
在那个页面上,我有各种标签。当用户单击其中一个选项卡时,ajax 调用会呈现一个视图......特别是,它会更新以前显示所有用户图片的部分(以及用于统计的附加部分)。对于“显示评论”示例,它使用用户评论过的所有图片更新部分:
def show_comments
@user = User.find(params[:id])
@pictures = @user.picture_comments.map{ |p| p.picture }.uniq
respond_to do |format|
format.html
format.js
end
end
show_comments.js.erb 文件如下所示:
$("#user_content_container").html("<%= escape_javascript render(partial: 'shared/pictures', pictures: @pictures) %>");
$("div.user_header").html("<h4>Comments</h4><br/>");
$("#stat_container").html("<%= escape_javascript render(partial: 'shared/comment_stats', pictures: @pictures) %>");
我想要做的是保持页面的当前功能。但也能够直接链接到通过 ajax 呈现的视图。例如,在另一个页面上有一个直接指向用户“显示”页面的链接,就像单击“评论”选项卡时一样。
我有一些想法,但不确定这样做的“最干净”的方式是什么。如果您需要任何额外的说明,请告诉我,b/c 老实说,我很难说出这个问题,因为我正在寻找实现这个问题的最佳方法!