2017-03-29 7 views
0

show 컨트롤러 (raffle)에 대한 ajax 요청을 성공적으로 렌더링했습니다. 새로운 모달에서는 다른 컨트롤러 (전자 메일)에서 부분을 렌더링하려고하지만 추첨 컨트롤러에서 새 양식을 가져옵니다. 터미널을 보면 래플/_new 및 이메일/_new를 렌더링한다고 나와 있지만 이메일 양식이 보이지 않습니다.레일 부분 렌더링이 잘못되었습니다

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) 

내 복권 컨트롤러의 show 액션이 있습니다 :

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

내 쇼보기 :

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

이메일/새가 '형태'등을 렌더링하는 부분이다 여기에 터미널 정보입니다 형식은 다음과 같습니다.

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

이유는 내 쇼가 전자 메일의 새로운 형식보다는 추첨을 통해 새로운 형식을 보여주고 있기 때문입니다. 아무도 무슨 일이 일어날 지 알고 있을까요?

답변

0

내 코드를 분리하지 않기 때문에 적절한 방법이라고 생각하지 않습니다. 그러나 제 작업 방식은 이메일 양식을 추첨 행사의 쇼보기에 하드 코딩하는 것이 었습니다.

<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

제출시 [POST] "/ email/new"와 일치하는 경로가 없습니다. – ryanpback

+0

"form_for '@'이메일을 변경하면 문제가 해결되었습니다 : url => new_email_path"to "form_for '@'email, : url => emails_path" – ryanpback