I have an activation link. I want the user to click on the link, kinda
like this...
domain.com/users/45/activate/1jf872
The number after "users" would be the user id, and the string after
"activate" would be the activation code. In the link above it would be
user id 45 and activation code 1jf872.
I have no problem sending the email. My problem is getting the route
(the url) recognized.
I have an activation link. I want the user to click on the link, kinda
like this...
domain.com/users/45/activate/1jf872
The number after "users" would be the user id, and the string after
"activate" would be the activation code. In the link above it would be
user id 45 and activation code 1jf872.
I have no problem sending the email. My problem is getting the route
(the url) recognized.
I have this in routes...
----------------------------------
resources :users do
member do
get :activate
end
end
try get ':activate/:activation_code'
----------------------------------
users_controller.rb
----------------------------------
def activate
@user = User.find(params[:id])
end
-----------------------------------
Along those same lines, try User.find_by_id_and_activation_code(params)
Which finds the user. But how can I make the query to find by both the
user id and the activation code?
like select users where users.id = 45 and activation_code = 1jf872
Along those same lines, try User.find_by_id_and_activation_code(params)
Thanks, but I tried it and I get this error when trying to start the
server...
Exiting
/var/lib/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/routing/mapper.rb:171:in
`default_controller_and_action': missing :action (ArgumentError)
from
/var/lib/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/routing/mapper.rb:72:in
`normalize_options!'
Try 'activate/:activation_code' instead -- There wouldn't be any map Have a read through the routing guide, too, I may have something wrong. Try using a match statement rather than get directly. I'm not sure if this syntax is supported by get.