2017-03-29 5 views
0

Ich habe erfolgreich eine Ajax Anfrage für eine Show-Controller (Verlosung) gerendert. Im neuen Modal versuche ich einen Teil von einem anderen Controller (E-Mail) zu rendern, aber ich bekomme das neue Formular vom Verlosungs-Controller. Wenn ich im Terminal nachschaue, heißt es, dass ich die Verlosungen/_new und die E-Mails/_new rendere, aber das E-Mail-Formular wird nicht angezeigt. Hier ist die Klemme Info:Rails Rendering falsch Teil

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) 

Meine Tombola Controller Show Aktion hat:

def show 
@raffle = Raffle.find(params[:id]) 
@email = Email.new 
end 

Meine Show Ansicht:

<%= render '/emails/new', :locals => { :raffle_id => @raffle.id, :email => @email } %> 

E-Mails/neu ist eine teilweise, die 'Form' macht und Form ist:

<%= 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 %> 

Für einige Grund, meine Show zeigt Verlosungen neue Form statt E-Mails neue Form. Könnte irgendjemand wissen, was vor sich geht?

Antwort

0

Ich denke nicht, dass es der richtige Weg ist, weil es meinen Code nicht getrennt hält. Aber meine Arbeit bestand darin, das E-Mail-Formular einfach in die Showansicht der Tombola zu schreiben.

<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 %> 
+0

Problem mit dieser, obwohl, bei Vorlage, gibt es keine Route, die [POST] "/ E-Mail/neu" entspricht. – ryanpback

+0

Das Problem wurde gelöst, indem man "form_for '@' email,: url => new_email_path" zu "form_for '@' email,: url => emails_path" – ryanpback