【问题标题】:Forward the user back to a post after adding a comment添加评论后将用户转发回帖子
【发布时间】:2012-01-22 12:47:06
【问题描述】:

这可能是一件相当简单的事情 - 我有一个网站,其中包含显示各种帖子的新闻提要。还有其他类似显示帖子的页面。可以直接从这些页面中的任何一个向这些帖子添加评论。

我需要做的是将用户重定向回他们来自的 URL,一旦他们添加了评论,以及他们评论的特定帖子(每个帖子的 id 为post-#{post.id},所以我' d 只需将#post-2 或其他任何内容粘贴到 URL 上。

如果帖子无法保存,无论出于何种原因,我还希望在重定向后将用户提交的内容预填充到评论框中。

我该怎么做这两件事?第一个是比较重要的。。 我必须将用户来自会话的 URL 存储在新操作的会话中,并在创建操作时重定向到该 URL?如何获取网址?

顺便说一句,我在 Rails 3.1 上。

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 forwarding


    【解决方案1】:

    您可以使用redirect :back 将用户返回到发出请求的页面

    redirect_to :back
    

    【讨论】:

    • 谢谢。我找到了我想要的here,但这已经很接近了:)
    【解决方案2】:

    假设 Comment 是嵌套在路由中 Post 下的资源 (/posts/123/comment/new):

    def create
      comment = Comment.new(params[:comment])
      if comment.save
        redirect_to post_path(comment.post)
      else
        redirect_to new_post_comment_path(params)
        # or maybe you have the comment form on the Post#show page
        # redirect_to post_path(params)
      end
    end
    

    【讨论】:

    • 我不想重定向到帖子路径。相反,我想重定向回用户评论的页面。可以是任何其他页面,比如新闻提要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2014-08-19
    • 2020-10-30
    • 2013-12-02
    相关资源
    最近更新 更多