2011-01-25 6 views
2

J'ai méthode dans mon contrôleur:Rails 3 ajax form_for appel

def work_here 
@company = Company.find(params[:id]) 
current_user.work_apply(current_user, @company) 
redirect_to company_path 
end 

Sur mon avis:

<%= render 'companies/work_form' if signed_in? %> 

_work_form.html.erb:

<%= form_for company, :remote => true, :url => { :controller => "companies", :action => "work_here" } do |f| %> 
<%= f.hidden_field :id, :value => company.id %> 
<%= f.submit "I working here" %> 

<% fin% >

Et j'ai un work_here.js.erb fichier:

$("#work_at_form").html("<%= escape_javascript("render('companies/works')") %>") 

Mais ma forme fonctionne sans demande de paiement ajax (dans d'autres pages fines fourchettes ajax), mon fichier js.erb ne jamais utiliser. Quelqu'un peut-il me conseiller? Merci.

+1

Tous les fichiers javascript sont-ils inclus dans cette page spécifique? Vérifiez également que html généré a les attributs corrects sur la balise

+0

Oui, tout va bien dans ce cas. –

Répondre

5

Le fichier work_here.js.erb ne peut pas être lu car vous ne l'appelez jamais. Une redirection est toujours le cas. le rend quand la requête est au format js.

def work_here 
@company = Company.find(params[:id]) 
current_user.work_apply(current_user, @company) 
respond_to do |format| 
    format.html { redirect_to company_path } 
    format.js { render } 
end 
end 
+0

Merci, je vais essayer aujourd'hui! –

+0

Merci, ça marche! –