2010-03-02 2 views
1

J'utilise formatastic dans un formulaire HAML.Erreur lors de la mise à jour d'un enregistrement à l'aide de Formtastic dans les modèles HAML

- semantic_form_for @company do |f| 
    - f.inputs do 
    = f.input :description 
    = f.input :type 
    = f.input :industry 
    = f.input :hq 
    = f.input :products 
    = f.input :subsidiaries 
    = f.input :employees 
    = f.input :revenue 
    = f.input :net_income 
    = f.buttons 

Lorsque j'essaie d'enregistrer un enregistrement existant, j'obtiens une erreur.

Template is missing 
Missing template companies/update.erb in view path app/views 

J'ai récemment migré la forme de ERB à HAML. Le formulaire utilisé pour travailler dans ERB.

Comment résoudre ce problème?

Modifier

J'ai résolu le problème. Il n'est pas lié à HAML ou Formtastic. Je passais un bloc à la méthode save et cela a causé le problème. Voir ma réponse ci-dessous pour plus de détails.

Répondre

1

J'ai trouvé la raison de cette erreur. J'ai réutilisé du code dans le contrôleur d'un autre projet où j'ai utilisé le plugin OAuth. Le plugin OAuth nécessite que vous passiez un bloc à la méthode ActiveRecord save. Le registre ActiveRecord vanille save ne supporte pas les blocs. Une fois que j'ai enlevé les blocs tout fonctionne. Code d'origine:

def update 
    @company.attributes = params[:company] 
    @company.save do |result| 
     if result 
     flash[:notice] = "Successfully updated company." 
     redirect_back_or_default root_url 
     else 
     render :action => 'edit' 
     end 
    end 
    end 

Certains documents de référence:

Article 1

Article 2

0

Rails est à la recherche d'un fichier de vue dans app/views/entreprises/appelé update.something.erb (probablement update.html.erb). Je suppose que vous avez un fichier update.html.haml à la place, c'est pourquoi vous obtenez l'erreur.

De toute façon, cela n'a rien à voir avec Formtastic désolé.

Quels fichiers avez-vous répertoriés dans l'app/views/companies?

+0

Je résolu la question. Il n'est pas lié à HAML ou Formtastic. Je passais un bloc à la méthode de sauvegarde et cela a causé le problème. Voir ma réponse pour plus de détails. –

Questions connexes