-1

J'ai vraiment problème avec le meilleur en place et Twitter bootstrap. J'ai passé beaucoup de temps avec ça. J'ai parcouru plusieurs pages - best_in_place github page et des problèmes. J'ai donc pensé, que je l'ai réparé mais pas et je ne sais pas où est l'erreur. Lorsque j'utilise best_in_place pour la première édition, cela fonctionne, enregistrez la valeur et l'entrée est modifiée pour revenir à la vue "normale" avec une nouvelle valeur. Mais quand je veux faire la même action (l'éditer) la deuxième fois, ça ne marche pas. Je dois recharger la page et ensuite je ne peux la modifier qu'une seule fois. Mon code est ci-dessous:Rails + best_in_place + Twitter Bootstrap

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 

Voir

<%= 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() 

Je l'ai déjà vu ces pages et n'a pas trouvé la réponse: SO Thread, ExampleApp, Best_in_place Issue

S'il vous plaît, quelqu'un pourrait me aider? Je sais qui est peut-être causé par Twitter Bootstrap, mais je ne sais pas comment le résoudre :(

+0

Pour la deuxième fois, les boîtes d'entrée sont-elles les meilleures? –

+0

J'ai trouvé la réponse. S'il vous plaît vérifier la réponse ci-dessous. –

+0

Ceci n'est pas causé par le bootstrap de Twitter. Tout bootstrap applique le style aux éléments. Basé sur Rails 4 et Bootstrap 3, vous avez besoin de 'respond_with_ip (@object)' pour que cela fonctionne. – onebree

Répondre

0

OK, j'ai trouvé la solution pour que La « question » est dans cette ligne.

format.json { respond_with_bip(@account) } 

Je l'ai remplacé par:.

format.json { render json: @account} 

et son travail maintenant, mais il était un coup de chance est-ce que quelqu'un sait quelle est la principale différence ici Pourquoi on travaille et le second pas Qu'est-ce exatly le respond_with_bip fait.? ?

+1

BIP fait simplement un appel AJAX à votre action de mise à jour. Le rendu json permet au contrôleur de renvoyer la valeur à votre avis. Best in PLace met tout simplement un calque AJAX sur votre vue - donc à partir d'un niveau de contrôleur, il n'y a rien de spécifique à BIP, donc le rendu de json est tout ce dont vous avez besoin. –