2009-02-02 2 views
2

Я хочу отобразить частичную в зависимости от выбора в поле выбора. Это выглядит тривиально, но я не могу найти пример.изменить раскладку на поле выбора изменения

Вся помощь очень ценится.

С уважением

+0

Это зависит от того, как вы хотите, чтобы определить, какие парциальное отображать или другими словами, вам нужно определить, что происходит, когда вы «что-то» выбираете. Вы имеете в виду выбор чего-то, нажатие кнопки и перенаправление, или перевод чего-то в строке через ajax при выборе чего-то? –

ответ

2

Если вы просто пытаетесь оказать частичное на странице, что форма подчиняется,

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

Итак, если у вас была поле выбора, например

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

Вы должны были бы оказывать

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

Если у вас есть _partial1.html.erb и partial2.html.erb в папке просмотра

1

Я хотел бы начать с чем-то вроде этого:

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 
Смежные вопросы