2016-05-30 52 views
0

我在另一個表單中渲染表單,但是這個新呈現的表單沒有表單標籤,只有輸入和提交。在Rails中渲染表單的結果沒有表單標籤,只有輸入

什麼是問題?

這裏是我的控制器:

def new 
    @customer = Customer.new 
    respond_to do |format| 
     format.html 
     format.js 
    end 
    end 

這裏的new.js.erb:

$('#customer-form').show(); 
$('#customer-form').html("<%= j (render 'form_ajax') %>"); 

這裏的_form_ajax.html.erb:

<%= form_for @customer, remote: true do |f| %> 

... inputs in here ... 

    <div class="actions"> 
    <%= f.submit "ОК" %> 
    </div> 

<% end %> 

HTML元素渲染成:

<%= form_for(@customer) do |f| %> 
    .. some controls here .. 
    <div id="customer-form" style="display:none;"></div> 
    .. some inputs here .. 
    <div class="actions"> 
    <%= f.submit "ОК" %> 
    </div> 
<% end %> 
+0

你可以在你渲染'form_ajax'的地方分享id ='customer-form'的HTML元素嗎? – Prity

+0

@Prity添加了HTML元素。 – Marat

回答

0

這不是關於軌道,HTML不會讓一個形式在另一個形式。通過從第一個表格中取代表格來解決問題。

0

嘗試修改new.js.erb渲染到下面這樣: -

$('#customer-form').html("<%= escape_javascript(render partial: 'form_ajax', locals: {customer: @customer}) %>"); 

讓我知道它的工作與否。謝謝

+0

謝謝,但這沒有奏效。 – Marat

+0

把它放在文件console.log(「<%= escape_javascript(渲染部分:'form_ajax',locals:{customer:@customer})%>」);併發布您在瀏覽器控制檯中看到的內容。 – sghosh968

+0

放什麼?按照您的建議修改了new.js.erb。 – Marat