よくわからない行動をしています。
簡単な 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を実行し、その後ブラウザでローカルに実行します。
私は混乱していますか、それとも正しいですか?