rails 4用新的params重定向

是否可以使用查询字符串中的新参数重定向回引用URL?

像这样的东西:

redirect_to :back, custom_param='foo' 

您可以将其放入会话中,然后重定向回来

 session[:somekey] = value redirect_to :back 

试试这个:

 # get a URI object for referring url referrer_url = URI.parse(request.referrer) rescue URI.parse(some_default_url) # need to have a default in case referrer is not given # append the query string to the referrer url referrer_url.query = Rack::Utils.parse_nested_query(referrer_url.query). # referrer_url.query returns the existing query string => "f=b" # Rack::Utils.parse_nested_query converts query string to hash => {f: "b"} merge({cp: 'foo'}). # merge appends or overwrites the new parameter => {f: "b", cp: :foo'} to_query # to_query converts hash back to query string => "f=b&cp=foo" # redirect to the referrer url with the modified query string redirect_to referrer_url.to_s # to_s converts the URI object to url string 

另一种方法可能是通过“flash”传递它(它在重定向请求后自动消失):

 flash[:somekey] = 'some value' redirect_to :back 

但是,正如我的一位同事指出的那样,更好的方法可能是将其作为查询参数返回,以保持无状态并区分这两个URL。 似乎没有一个很好的,内置的Rails方法来做到这一点,这让我想知道这种方法还有什么问题。