2017-06-18 136 views
0

从文件soul.html.erb,叫在页面加载时局部视图局部视图轨

<%= render 'contact_options_soul_d' %> 

在文件contact_options_soul_d.html.erb部分观点看起来是这样的 -

<div id="contact-option"> 
<div id= 'un-authenticated' data-access-api-result = <%= @valid_ticket %> %></div> 
</div> 

上的按钮REST调用发生在控制器和局部视图的点击是来自partial_create.js.erb

称为
def partial_create 
     respond_to do |format| 
     format.js 
     end 
     return 
    end 

文件partial_create.js.erb

$('#contact-option').html('<%= escape_javascript(render :partial => 'rhythm/contact_options_soul_d') %>') 

我的问题是 - 部分观点被称为,断点命中和@valid_ticket新的价值也得到更新,但观点是没有得到更新的网页看起来还是即使在更新之后也是如此(在浏览器检查中查看时视图保持不变) 请帮忙!!!

+0

部分名称是“partial.js.erb”还是“partial_create.js.erb”?它一定是后者。 – Gerry

+0

它是partial_create.js.erb。我使用红宝石矿,所以在放置文件和文件名方面没有任何问题,我相信:) –

回答

0

这不是一个完全适合你的方式的答案,但是你总是可以在控制器中呈现它,并在“respond_to”上返回,然后在Ajax成功上使用返回的值替换html:

然后在您的JS代码(这与jQuery):

function soul_searching(parameters) { 
$.ajax({ 
    url: "YOUR/POST/ROUTE", 
    type: "POST", 
    dataType: "json", 
    data: { 
    any_parameters: 'you_need_to_pass_to_controller' 
    }, 
    success: function(data) { 
    $('#contact-option').html(data['new_html']); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
    //DO SOMETHING 
    } 
}); 

}

0

你需要用下划线前面加上谐音。例如: _contact_options_soul_d.html.erb

注意:您只需要对文件名执行此操作。您仍然可以调用该部分

<%= render partial: 'contact_options_soul_d.html.erb' %> 

如果部分位于单独的文件夹中,请确保引用路径。