-1

У меня действительно неприятная проблема с лучшими на месте и Twitter-бутстрапом. Я провел с этим много времени. Я просмотрел несколько страниц - best_in_place github page и вопросы. Поэтому я подумал, что я это исправил, но нет, и я не знаю, где ошибка.Rails + best_in_place + Twitter Bootstrap

Когда я использую best_in_place для первого редактирования, он работает, сохраните значение, и ввод будет изменен на «нормальный» вид с новым значением. Но когда я хочу сделать то же действие (отредактируйте его) во второй раз, он не работает. Мне нужно перезагрузить страницу, а затем я могу редактировать ее только один раз. Мой код ниже:

AccountsController.rb

def update 
    @account = current_user.account 
    respond_to do |format| 
     if @account.update_attributes(params[:account]) 
     format.json { respond_with_bip(@account) } 
     else 
     format.json { respond_with_bip(@account) } 
     end 
    end 
    end 

Посмотреть

<%= best_in_place current_user.account, :introduction, :type=> :input, 
     :nil => "Click me to add your introduction!", 
       :html_attrs => {:'data-provide' => "typeahead" } %> 

account.js.coffee

jQuery -> 
    $('.best_in_place').best_in_place() 

Я уже видел эти страницы и не нашли ответ: SO Thread, ExampleApp, Best_in_place Issue

Пожалуйста, может кто-нибудь мне помочь? Я знаю, что это может быть вызвано использованием Twitter Bootstrap, но я не знаю, как это исправить :(

+0

Во второй раз входы ввода лучше всего подходят? –

+0

Я нашел ответ. Пожалуйста, проверьте ответ ниже. –

+0

Это не вызвано загрузкой twitter. Все бутстрапы - это применение стилей к элементам. На основе Rails 4 и Bootstrap 3 вам нужно 'response_with_ip (@object)' для его работы. – onebree

ответ

0

ОК, я нашел решение, что «проблема» в этой строке:.

format.json { respond_with_bip(@account) } 

я заменил его:.

format.json { render json: @account} 

и его работы сейчас, но это было просто везение ли кто-нибудь знает, что главное различие здесь Почему никто не работает, а второй нет Что exatly respond_with_bip делает.? ?

+1

BIP просто выполняет вызов AJAX для вашего действия по обновлению. Обработчик json позволяет контроллеру вернуть значение в ваш обзор. Лучше всего в PLace просто накладывать слой AJAX на ваш взгляд - так что с уровня контроллера нет ничего конкретного для BIP, поэтому рендеринг json - это все, что нужно. –

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