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   Rails Routing from the Outside In — Ruby on Rails Guides 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?