0

よくわからない行動をしています。

簡単な link_to :remote=>true をクリックして

ウィザード/index.html.erb

< %= link_to "bros", new_wizard_path(:idparent= >wz.idparent, :id= >wz.id), :remote => true %>  

コントローラーは新しい @wizard インスタンスを準備します

コントローラー/wizards_controller.rb

def new  
  @wizard = Wizard.new  
  @wizard.idparent = flash[:id_of_parent]  
  flash[:id_of_parent] = nil  
  @wizard.idparent ||= params[:idparent]
end  

そして、対応する js.erb を呼び出します。

ウィザード/new.js.erb

$('#divwizard').append('<div id="wizardnew"></div>');  
$('#wizardnew').html('<%=j (render(:partial => "wizards/new")) %>');  

この後者は部分ビューを呼び出します

ウィザード/_new.html.erb

< %= render :partial = > "wizards/form" % >  

wizards/_form.html.erb

<%= form_for @wizard, :remote => true do |wiz| %>  
    < div class="edt_wiz" >  
    < div class="edt_wiz_pos" >  
<%= wiz.label :pos, :class => "pos"%>  
<%= wiz.text_field :pos %>  

しかし、webrick ログで *_new.html.erb* の二重呼び出しを読みました

ウェブリックログ

Started GET "/wizards/new?id=126" for 127.0.0.1 at 2013-10-21 19:08:51 +0200  
Processing by WizardsController#new as JS  
Parameters: {"id"=>"126"}  
Rendered wizards/_form.html.erb (5.7ms)  
Rendered wizards/_new.html.erb (6.9ms)  
Rendered wizards/_form.html.erb (6.3ms)  
Rendered wizards/_new.html.erb (7.1ms)  
Rendered wizards/new.js.erb (17.7ms)  
Completed 200 OK in 79ms (Views: 28.0ms | ActiveRecord: 0.9ms)  

どうしたの?
partial _new.html.erb を 2 回呼び出すのは誰ですか?

誰か助けてください。この状況をデバッグするにはどうすればよいですか?

編集私

コードの一部を省略しました (申し訳ありません!)。
JavaScriptの条件があります!! :

new.js.erb

if (something) { 
  $('#divwizard').append('<div id="wizardnew"></div>');  
  $('#wizardnew').html('<%=j (render(:partial => "wizards/new")) %>'); 
} else {   
  $('#otherdiv').append('<div id="wizard-other-new"></div>');  
  $('#wizard-other-new').html('<%=j (render(:partial => "wizards/new")) %>'); 
}  

そしてerb、私は(?)と思いますが、条件がjavascriptであるため、両方のrender :partialを実行し、その後ブラウザでローカルに実行します。

私は混乱していますか、それとも正しいですか?

4

1 に答える 1