2017-03-29 18 views
0

私は、show controller(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 '@" email:url => new_email_path "を" form_for' @ email ":url => emails_path"に変更することで解決しました。 – ryanpback

関連する問題