2010-06-04 2 views
3

J'ai un formulaire partiel qui doit rendre une remote_form_for ou une forme_for en fonction de la valeur d'une variable locale passée à partir de la vue de l'appelant. Il ressemble à ...rails conditionnel forme/remote_form

<% if ajax %> 
    <% remote_form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %> 
    <% else %> 
    <% form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %> 
    <% end %> 

De toute évidence, je reçois une erreur de syntaxe près de la <% else%>, parce que son s'attendre à une « fin ».

Quelle est la bonne façon de procéder?

Répondre

2

vous pouvez faire une méthode d'assistance

def form_or_remote_form_for object, *opts, &proc 
    if ajax 
    remote_form_for object, *opts, &proc 
    else 
    form_for object, *opts, &proc 
    end 
end 

puis dans votre point de vue, il serait juste être

<% form_or_remote_form_for @search, :url => {:action => :search_set, :controller => :searches, :stype => stype} do |f| %> 
+0

Comment est-ce pour Rails 3? – Tony