2012-06-23 6 views
0

У меня есть add_new_button, который создаст новый объект в базе данных и покажет обновленные записи с помощью ajax. Код работает хорошо, пока я не обновил Mongoid с 2.4 => 3.0.0.rc (обновление пакета).Ошибка частичного рендеринга с ajax

Теперь проблема в том, что при нажатии кнопки база данных обновляется новыми записями, однако страница не будет обновляться. Я проверил запрос ajax и сделал частичную страницу, но без новой записи. Пока второй клик отобразит ранее добавленную запись, но без последней записи. Есть идеи?

Обновлено фрагментам кода

Это делает _desktop.html.erb

#index.html.erb 
<div id=columns> 
    <%= render :partial => "desktop", :locals => { :items => @items } %> 
</div> 

* _desktop.html.erb * оказывает мнение, а также для обновления AJAX (Это страница, которая не обновляется с помощью AJAX)

#_desktop.html.erb 
<%= form_tag(new_path, :remote => true) do %> 
    <div class="m-body"> 
     <p>Select an item</p> 
     <%= select_tag "user_items", options_from_collection_for_select(services, "id", "name", :prompt => true) %> 
    </div> 
    <div class="m-footer"> 
     <a href="#" class="btn">Close</a> 
     <%= submit_tag "Confirm", :id => "add-item_btn" %> 
    </div> 
<% end %> 

нет проблем в не создать новый элемент, и он оказал _desktop.html.erb через JSON

# items_controller.rb 
def new 
    @user.items.create!(
     handle: 'name', 
     content: 'body' 
    ) 

    respond_to do |format| 
     format.json { render :json => {:sucess => true, :html => (render_to_string '_items.html.erb', :locals => { :items => @items })} } 
     format.html {} 
    end 
end 

Однако это не заманит обновленный HTML с вновь добавленным элементом ..

<%# new.js.erb %> 
    $('#add-item_btn').live('ajax:success', function(event, data){ 
    if(data.success == true) { $('#columns').html(data.html); } 
}); 
+0

, показывая ваши фрагменты кода, поможет другим помочь вам. –

+0

обновлен фрагментами кода, спасибо за совет. – shinnyx

ответ

0

Если проблема началась с обновлением от конкретного драгоценного камня (в данном случае Mongoid), то первая вещь, которую следует рассмотреть, - это найти ЧАНГЕЛОГ, чтобы понять, что может быть причиной. В этом случае it is a pretty long changelog, но это все равно ваша лучшая ставка, чтобы найти причину самостоятельно.

Кроме того, MongoID имеет довольно хорошее upgrading guide, который может указывать на вас в правильном направлении.

Одна вещь, которая попалась мне на глаза, в ItemsController#new, вы визуализировали _items.html.erb с локальными переменными, заполненными @items. Но где @items набор? С кодом, который вы предоставили, он выглядит как @items возвращает нуль.

+0

Спасибо, что ответили. По-прежнему нет идеи после просмотра журнала изменений, не может найти никаких изменений, которые повлияют на представление рендера. Во всяком случае, я использовал 'before_filter: get_items' в ItemsController, поэтому он не равен нулю. – shinnyx

Смежные вопросы