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 %>   <div class="field">     <%= label_tag :key %><br />     <%= text_field_tag :key %>   </div>   <div class="actions">     <%= submit_tag 'validate', :action => 'validation' %>   </div> <% 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

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))

shouldn't that be 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 %> <div class="field"> <%= label_tag :key %><br /> <%= text_field_tag :key %> </div> <div class="actions"> <%= submit_tag 'validate', :action => 'validation' %> </div> <% 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

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

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 %><br />

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

<% end %>

B.