redirect_to(:back)页面的相同部分?

时间:2015-05-04 21:57:52

标签: ruby-on-rails ruby ajax

我有社交Feed。

如果用户向下滚动很多,那么用户喜欢通过喜欢/评论将其重定向到页面的顶部而不是页面的相同部分。 滚动到

有没有办法做到这一点?否则,我只会使用分页来缩小页面,这不是理想的,因为这也会影响用户友好性。

class ActivitiesController < ApplicationController
    def index
       @activities = Activity.order("created_at desc").where(user_id: current_user.following_ids)
    end

    def show
       redirect_to(:back)
    end
end

如果你有时间的话,我已经提问了,请查看它们。)

2 个答案:

答案 0 :(得分:1)

假设由于在评论/收藏后重新加载页面而被重定向到页面顶部,您可以尝试使用ajax执行这些操作。

这样,页面将不会重新加载,您可以修改DOM以反映用户使用javascript的操作。

以下是有关rails中ajax的更多信息: overload

答案 1 :(得分:0)

首先通过提供ID来在页面中生成锚点。例如:

<div id="activity5">
  ..
</div>

然后在您的控制器中,使用锚点选项重定向到该部分:

redirect_to(request.env["HTTP_REFERER"] + '#activity5') 

注意redirect_to(:back)redirect_to(request.env["HTTP_REFERER"])相同

话虽如此,使用Javascript和AJAX可能是更好的选择。