2011-07-25 5 views
0

Je dois changer de déclaration de formulaires en HAML.Rails Haml - fin si

- if params[:action] == 'tomato' 
    = form_for @request, :url => 'request/tomato' do |f| 
- else 
    = form_for @request do |f| 

    = f.text_field ... # form content 

    = f.text_field # don't work too 

Mais je ne peux pas utiliser end pour séparer la déclaration de la forme du contenu de la forme, donc j'obtenir 500 erreur interne du serveur

Comment puis-je y parvenir?

+0

Vérifiez votre indentation – Awea

+0

@Awea j'ai essayé les deux variantes, je ne sais pas haml ne sais pas où l'instruction 'if' se termine et dans le premier cas ne voit pas le contenu du formulaire –

+0

le deuxième champ text_field doit être dans les deux forme? – Awea

Répondre

3

Essayez cette

- args = params[:action] == "tomato" ? {:url => 'request/tomato'} : {} 
= form_for @request, args do |f| 
    = f.text_field :field_one 
    = f.text_field :field_two 
+0

bien mais votre indentation est tout faux aussi - les troisième et quatrième lignes sont indentées par plus de 2 espaces – stephenmurdoch

+0

@stephenmurdoch il peut être en utilisant des onglets au lieu des espaces –

+0

les onglets mous sont toujours mieux ^^ – marcgg

2

Depuis Haml fonctionne sur indentation, vous n'avez pas besoin d'un statment End après un If.

Assurez-vous que vos 'if' et 'else' sont alignés et mettez tout contenu qui devrait venir après l'indentation correcte.