He procesado con éxito una solicitud de ajax para un controlador de espectáculos (rifa). En el nuevo modal, estoy tratando de generar un parcial de otro controlador (correo electrónico), pero obtengo el nuevo formulario del controlador de rifas. Cuando miro en la terminal, dice que estoy mostrando los sorteos/_nuevo y los correos electrónicos/_nuevo, sin embargo, el formulario de correo electrónico no se muestra. Aquí está la información de la terminal:
Raffle Load (0.2ms) SELECT "raffles".* FROM "raffles" WHERE "raffles"."id" = $1 LIMIT $2 [["id", 6], ["LIMIT", 1]] Rendering raffles/show.js.erb Rendered layouts/_errors.html.erb (0.5ms) Rendered raffles/_form.html.erb (12.0ms) Rendered emails/_new.html.erb (21.5ms) Rendered raffles/_show.html.erb (37.5ms) Rendered raffles/show.js.erb (51.3ms)La acción mostrar de mi controlador de rifas tiene:
def show @raffle = Raffle.find(params[:id]) @email = Email.new endVista de mi espectáculo:
<%= render '/emails/new', :locals => { :raffle_id => @raffle.id, :email => @email } %>emails/new es un parcial que representa 'formulario' y el formulario es:
<%= form_for email do |f| %> <%= f.text_field :email, :placeholder => "Your Email" %> <%= f.hidden_field :raffle_id, :value => raffle_id %> <%= f.submit "Enter", :class => 'btn-pop' %> <% end %>Por alguna razón, mi programa muestra un nuevo formulario de sorteos en lugar de un nuevo formulario de correos electrónicos. ¿Alguien podría saber qué está pasando?
No creo que sea la forma correcta porque no mantiene mi código separado. Pero mi solución fue simplemente codificar el formulario de correo electrónico en la vista de presentación de la rifa.
<h3><%= @raffle.title %></h3> <h5><%= @raffle.draw_date %> at <%= @raffle.draw_time %></h5> <h5><strong>Raffle Closes:</strong> April 25th at 4:00 pm</h5> <p><%= @raffle.description %></p> <%= form_for @email, :url => new_email_path do |f| %> <%= f.text_field :email, :placeholder => "Your Email" %> <%= f.hidden_field :raffle_id, :value => @raffle_id %> <%= f.submit "Enter", :class => 'btn-pop' %> <% end %>