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.ru... 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.ru... gives me: Routing Error No route matches [GET] "/pages/http%3A%2F%2Fguides.rubyonrails.org" Any ideas?
on 2012-11-22 14:00
on 2012-11-22 14:22
Maybe I'm just not getting this, but why wouldn't you pass the URL as a query string?
on 2012-11-22 14:26
Fairly new to rails so that is a good question :) How would I do that? /pages?url=http://.. /pages/url=http://.. Would I need to change the routes any?
on 2012-11-22 14:27
On Thu, Nov 22, 2012 at 6:58 AM, Dan Brooking <dmbrooking@gmail.com> wrote: __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.ru... > 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: /.*/".
on 2012-11-22 14:35
Jordan's answer notwithstanding, On Thu, Nov 22, 2012 at 7:25 AM, Dan Brooking <dmbrooking@gmail.com> wrote: > Fairly new to rails so that is a good question :) > > 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.
on 2012-11-22 18:41
On Nov 22, 2012, at 8:33 AM, tamouse mailing lists <tamouse.lists@gmail.com> wrote: > 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?
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.