Ruby on rails Rails 4-request.original_fullpath和request.fullpath之间有什么区别

Ruby on rails Rails 4-request.original_fullpath和request.fullpath之间有什么区别,ruby-on-rails,ruby-on-rails-4,uri,query-string,Ruby On Rails,Ruby On Rails 4,Uri,Query String,我需要在数据库中存储用户搜索查询,以便跟踪搜索历史记录。我知道,请求。原始url会将查询字符串作为绝对url提供给我 http://www.example.com/search?utf8=%E2%9C%93&keywords=cars&view=grid 我更喜欢存储相对url路径。也就是说,对于包含所有参数的相对url,request.original_fullpath和request.fullpath之间有什么区别?他们似乎是同一件事 请求原始路径 /search?utf8

我需要在数据库中存储用户搜索查询,以便跟踪搜索历史记录。我知道,请求。原始url会将查询字符串作为绝对url提供给我

http://www.example.com/search?utf8=%E2%9C%93&keywords=cars&view=grid
我更喜欢存储相对url路径。也就是说,对于包含所有参数的相对url,request.original_fullpathrequest.fullpath之间有什么区别?他们似乎是同一件事

请求原始路径

/search?utf8=%E2%9C%93&keywords=cars&view=grid
/search?utf8=%E2%9C%93&keywords=cars&view=grid
请求。完整路径

/search?utf8=%E2%9C%93&keywords=cars&view=grid
/search?utf8=%E2%9C%93&keywords=cars&view=grid
返回一个字符串,其中包含上次请求的路径及其参数

返回字符串完整路径,包括最后请求的URL的参数

original\u fullpath
fullpath
之间的区别在于,
original\u fullpath
方法不包括原始url中没有的参数(即通过POST而不是GET发送的参数)。

我想添加忽略重定向,同时包括它们,例如:

# some_spec.rb
describe 'collections' do
  before do
    get '/collections'
  end
  context 'user is not signed in' do
    it 'should redirect to /unauthenticated' do
      expect(request.original_fullpath).to eq '/collections'
      expect(request.fullpath).to eq '/unauthenticated'
    end
  end
end

我感谢你的答复。我还是有点困惑。在我的例子中,听起来我想使用fullpath,因为我们的搜索使用的是GET-request方法,有时一些请求是通过ajax完成的。我想确保我总是捕获完整的请求url。@Bryan,确切地说,
original_fullpath
不会包含POST方法参数,因此如果您总是想捕获参数,使用
fullpath
是一种好方法。如果你还有其他问题,请告诉我。