Un jour, une gem

23/04/2012

Lundi c'est REST in Place

gem install rest_in_place

AJAX Inplace-Editor

Aujourd’hui une gem cool pour un éditeur AJAX qui fonctionnera parfaitement avec vos controllers REST.

Pour le mettre en place, rien de plus simple. Après avoir modifié votre Gemfile, vous devez ajouter ceci à votre application.js :

//= require 'rest_in_place'

Ensuite ajoutez cette ligne dans votre balise head :

<%= csrf_meta_tags %>

Et finalement pour rendre du contenu éditable il faudra le wrapper comme ceci :

<span class="rest-in-place" data-url="/users/1" data-object="user" data-attribute="name">
  <%= @user.name %>
</span>

N’oubliez pas de modifier vos controllers pour qu’il ressemblent à quelque chose dans ce goût-là :

class UsersController < ApplicationController
  def show
    @user = User.find params[:id]
    respond_to do |type|
      type.html
      type.json {render :json => @user}
    end
  end

  def update
    @user = User.find params[:id]
    if @user.update_attributes!(params[:user])
      respond_to do |format|
        format.html { redirect_to( @person )}
        format.json { render :json => @user }
      end
    else
      respond_to do |format|
        format.html { render :action  => :edit } # edit.html.erb
        format.json { render :nothing =>  true }
      end
    end
  end
end

Voilà c’est tout pour aujourd’hui !

Le lien utile