Issues with rails resourceful routes

I'm not sure where my issue is - if it's in my routes file (maybe I need to be more specific) or if it's the format of the URL.

I am working on a screen scraping project just for fun. It is designed where the URL of the page you are on is passed into the Rails app, so if you are on
  http://guides.rubyonrails.org/routing.html
and click the button for my app, it routes to
  http://localhost:3000/pages/http%3A%2F%2Fguides.rubyonrails.org%2Frouting.html

My routes file has this:

  resources :pages

The problem I face is it works for part of the URL. So if I do:

  http://localhost:3000/pages/http%3A%2F%2F or
  http://localhost:3000/pages/http%3A%2F%2Fguides or
  http://localhost:3000/pages/http%3A%2F%2Fguides.rubyonrails

it works. But as soon as I add in the second '.', I start getting errors.

  http://localhost:3000/pages/http%3A%2F%2Fguides.rubyonrails.org

gives me:

  Routing Error
  No route matches [GET] "/pages/http%3A%2F%2Fguides.rubyonrails.org"

Any ideas?

Maybe I'm just not getting this, but why wouldn't you pass the URL as
a query string?

Fairly new to rails so that is a good question :slight_smile:

How would I do that?

/pages?url=http://.….

/pages/url=http://.….

Would I need to change the routes any?

__SNIP__

The problem I face is it works for part of the URL. So if I do:
        http://localhost:3000/pages/http%3A%2F%2F or
        http://localhost:3000/pages/http%3A%2F%2Fguides or
        http://localhost:3000/pages/http%3A%2F%2Fguides.rubyonrails
it works. But as soon as I add in the second '.', I start getting errors.
        http://localhost:3000/pages/http%3A%2F%2Fguides.rubyonrails.org
gives me:
        Routing Error
        No route matches [GET] "/pages/http%3A%2F%2Fguides.rubyonrails.org"
Any ideas?

get "/pages/:page" => "controller#page", value: /.*/
Notice the "value: /.*/".

Jordan's answer notwithstanding,

Fairly new to rails so that is a good question :slight_smile:

How would I do that?

/pages?url=http://.….

This is the format that will give you a query string.

/pages/url=http://.….

This form would need to be handled in routes in a manner similar to
the answer Jordan gave.

Jordan's answer notwithstanding,

I tried that and it didn't work. I understand what it's trying to do so I'll keep playing with it to get it working. I did use the url param method you have below and that is working.

On a side note - is either one considered to be a better way to do it? Or just two different ways of solving the same problem? Is there a length limit to URL params that I might run into?