2009-02-02 11 views
2

Je veux rendre un partiel en fonction d'une sélection dans la boîte de sélection. Cela semble trivial mais je ne peux pas trouver un exemple.changer la disposition sur la boîte de sélection changer

Toute aide est grandement appréciée.

Cordialement

+0

Cela dépend de la façon dont vous voulez déterminer qui de rendre partielle, ou En d'autres termes, vous devez déterminer ce qui se passe lorsque vous "sélectionnez" quelque chose. Voulez-vous dire sélectionner quelque chose, cliquer sur un bouton et être redirigé, ou rendre quelque chose en ligne via ajax en sélectionnant quelque chose? –

Répondre

2

Si vous êtes tout simplement essayer de rendre une partie sur la page que la forme soumet,

<%= render :partial => params[:your_selectbox_value_matching_the_partial_you_want] %> 

Donc, si vous aviez une boîte de sélection comme

<select name='the_partial'> 
    <input value="partial1">Some Partial</input> 
    <input value="partial2">Another Partial</input> 
</select> 

Vous auriez besoin de rendre

<%= render :partial => params[:the_partial] %> 

En supposant que vous avez _partial1.html.erb et partial2.html.erb dans votre dossier de vue

1

Je commence par quelque chose comme ceci:

app/views/_layout_selector.html.erb: 
<form action="<%= request.request_uri -%>"> 
    <select name='layout'> 
    <input value="blue">Blue</input> 
    <input value="pink">Pink</input> 
    <input value="green">Green</input> 
    </select> 
</form> 

app/views/layouts/blue.html.erb: 
<html> 
    ... 
    <%= render :partial => '/layout_selector' %> 
    ... 
</html> 

(/app/views/layouts/pink.html.erb and green.html.erb similar) 

app/controllers/application.rb: 
class ApplicationController < ActionController::Base 
    DEFAULT_LAYOUT = 'blue' 
    layout :pick_layout 
    ... 
    private 
    def pick_layout 
    params[:layout] || DEFAULT 
    end 
end 
Questions connexes