Controllers have access to HTTP parameters (you might know them as ?name=foo
in URLs, but Ruby on Rails handle different formats too!) and output different responses based on them. There isn't a way to distinguish between GET and POST parameters, but you shouldn't do that in any case.
class UsersController < ApplicationController
def index
respond_to do |format|
format.html do
if params[:name] == "john"
render html: "Hello John"
else
render html: "Hello someone"
end
end
end
end
end
As usual our route:
resources :users, only: [:index]
Access the URL /users?name=john
and the output will be Hello John
, access /users?name=whatever
and the output will be Hello someone