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

¿Fue útil?

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
scroll top