我有一個新的高度棘手的問題,從3天開始就讓我瘋狂......也許有人可以幫助我。Rails 3:棘手的一個...刷新模式後的選擇框,無需重新加載整個頁面
我有一個選擇框的圖(以供用戶選擇一個帳戶): 這裏是圖的一部分:
div id="boxplot">
<div id="box1">
Sur quel compte?<br />
<div id="banque"><%= render 'banque', :f => f %></div><br /><br />
Combien?<br />
<%= f.text_field :montant %>
</div>
然後這裏是部分:
<%= f.select(:debit, @in.collect {|p| [p.nom, p.numero]} + ['Ajouter...'], {:include_blank => 'Sur quel compte?'})%>
正如你可以看到我有一個變量在控制器新的行動是:
def new
@journal = Journal.new
@in = Compte.where(:categorie => "Actif")
是否已經實現了一個模式框,讓用戶可以「添加一個新帳戶」(compte當然是另一種模式)。這是Javascript。這很簡單,只是檢查,如果用戶選擇「Ajouter ......」如果是打開一個iframe來創建的孔特模型的新紀錄:
$(function() {
$('#banque').change(function()
{
$a = $('#journal_debit').val();
if ($a == "Ajouter...") {
$.fancybox({
'width': '70%',
'height': '70%',
'autoScale': false,
'transitionIn': 'fade',
'transitionOut': 'fade',
'type': 'iframe',
'scrolling': 'no',
'padding': 45,
'showCloseButton': true,
'title': "Ajouter un nouveau compte" ,
'titleShow': true,
'titlePosition': 'over' ,
'onComplete': function() {
$("#fancybox-title").css({'top':'0px', 'bottom':'auto'});
},
'href': '/comptes/modal/'
});
}
else
{
}
});
})
我提出這個要求與create.js.erb JS :
$(function() {
parent.$.fancybox.close();
})
一切正常,這一點,但回來的父窗體,不更新我的選擇框(我指的是新創建的帳戶未在選擇框中顯示...)。
只拿到方式,它是添加這一個create.js.erb:
parent.location.reload(true);
但問題是,重新加載整個頁面會觸發模式之前鬆散的用戶會inputed數據盒子...
我找不到辦法做這個棘手的問題。是否有可能僅重新加載頁面的一部分(例如包含選擇框的部分),但是如果是,如何刷新@variable?
或者還有另一種很酷的方式來實現我所追求的?
非常感謝您的幫助。
聽起來像一個很酷的想法,但是當我實施它時@company不包括從模式創建的新公司... – Dannoel 2012-03-15 06:46:58
我怎樣才能處理通過模式創建新記錄後「重新加載」@variable? – Dannoel 2012-03-15 06:49:40