Problem with new action 'validate'

I’ve created a new action in my invitations controller named
validate and validation

controller/invitations_controller.rb

def validate
end

def validation
@invitation = Invitation.find(params(:key))

if @invitation != nil
redirect_to new_client_path, :notice => ‘Codigo Aceptado’
else
flash.now[:alert] = ‘Ingrese un codigo valido’
render :action => ‘validate’
end
end

_validation_form.html.erb

<%= form_tag invitations_validate_path do %>

<%= label_tag :key %>
<%= text_field_tag :key %>
<%= submit_tag 'validate', :action => 'validation' %>
<% end %>

So when I enter a valid key I get redirected to create a user, but this
isn’t working. the submit isnt doing anything, the :action => validation
is not working

config/routes.rb

resources :invitations do
collection do
get :validate
get :validation
end
end

On Apr 17, 9:12pm, “Jose tomas R.” [email protected] wrote:

shouldn’t that be params[:key] ?

<%= form_tag invitations_validate_path do %>
isn’t working. the submit isnt doing anything, the :action => validation
is not working

It’s not supposed to. A form’s action is specified on the form element
itself, not on submit tags. You’ve written form_tag
invitations_validate_path, so the form gets sent to
invitations_validate_path (ie your valdiate action)

Fred

so you say that should be form_for params[:key]? that wont work neither

On Mon, Apr 18, 2011 at 6:01 PM, Tomas R. [email protected] wrote:

so you say that should be form_for params[:key]? that wont work neither

You only fixed part of the issue. Fred pointed out two things. The first
was
that you specified params[:key] incorrectly. The second, and more
important,
is that you put your :action in the wrong place. Remove the :action from
your submit tag and change your form_tag to go to
invitations_validation_path.

<%= form_tag invitations_validation_path do %>

<%= label_tag :key %>
<%= text_field_tag :key %>
<%= submit_tag 'validate' %>
<% end %>

B.