2012-01-02 6 views
0

Ce que je veux faire est de passer la valeur des champs dans le formulaire au contrôleur afin que je puisse faire une requête personnalisée dans la base de données. Je pense que quelque chose manque, mais je ne peux pas voir quoi.Ruby on rails variable AJAX

Ceci est mon contrôleur

def index 

    @contributions = Contribution.all 
    @number1 = params[:number1] 
    @number2 = params[:number2] 
    @itemsok = Contribution.where("first_item_id = ?",@numer1).where("first_item_grade = ?",@numer2) 


    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @contributions } 
    end 

Ceci est la vue

<%= form_tag(contribution_path, :method => "get") do %> 
    <%= label_tag(:number1, "Number 1:") %> 
    <%= text_field_tag(:number1) %> 
    <%= label_tag(:number1, "Number 2:") %> 
    <%= text_field_tag(:number2) %> 
    <%= submit_tag("Searcs") %> 
<% end %> 

Et ceci est la ligne dans la routes.rb

get 'contribution' => 'contributions#index', :as => 'contribution' 

Merci beaucoup.

+0

Cela ressemble à une faute de frappe dans le contrôleur. Vous affectez des vars '@ numberX' mais en utilisant' @ numerX' dans la requête. –

Répondre

1

Ajoutez :remote => true à la balise de formulaire pour la soumettre via ajax et assurez-vous de répondre à format.js dans l'action du contrôleur.

<%= form_tag(contribution_path, :remote => true) %>