cambiar el diseño en el cuadro de selección cambiar
-
20-08-2019 - |
Pregunta
Quiero representar un parcial dependiendo de una selección en el cuadro de selección. Esto parece trivial pero no puedo encontrar un ejemplo.
Toda la ayuda es muy apreciada.
Saludos
Solución
Si simplemente está intentando representar un parcial en la página a la que se envía el formulario,
<%= render :partial => params[:your_selectbox_value_matching_the_partial_you_want] %>
Entonces, si tuviera un cuadro de selección como
<select name='the_partial'>
<input value="partial1">Some Partial</input>
<input value="partial2">Another Partial</input>
</select>
Tendrías que renderizar
<%= render :partial => params[:the_partial] %>
Suponiendo que tiene _partial1.html.erb y partial2.html.erb en su carpeta de vista
Otros consejos
Comenzaría con algo como esto:
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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow