2010-08-16 14 views
10

Existen algunas opciones para editar un modelo in situ mientras se está en la página Mostrar, es decir, sin tener que cargar un formulario en la página Editar. Por ejemplo, vea http://www.ruby-toolbox.com/categories/rails_in_place_editing.html.edición in situ en Rails 3

¿Alguien ha tenido alguna experiencia al usar cualquiera de estas opciones (u otras) en Rails 3? ¿Alguna sugerencia o consejo?

En mi caso, tengo una forma bastante larga compuesta de un número variable de elementos. Desde el punto de vista de la usabilidad, tiene sentido editar el texto de estos elementos en la misma página, en lugar de necesitar un botón Editar para cada uno que envía al usuario a una página de edición para el elemento en particular.

Respuesta

1

Claro que tiene sentido para mí. Lo hago todo el tiempo.

Por ejemplo, estoy trabajando en un formulario modelo polimórfico complejo anidado y solo tiene dos vistas. Un índice y un parcial para agregar dinámicamente más atributos a él.

Si conoce AJAX, eso realmente puede ayudar a su UI ya que sus usuarios ni siquiera tendrán que hacer clic en un botón para guardar.

Para lograr un mínimo de esto. Configure un index.html.erb con su formulario dentro de él.

En su controlador, puede especificar sus acciones, así:

def update 
    @quick_fact = @organization.quick_facts.find(params[:id]) 
    if @quick_fact.update_attributes(params[:tab]) 
    flash[:notice] = 'Text Tab was successfully updated.' 
    redirect_to quick_facts_organization_path(@organization) 
    else 
    render :action => "index", :id => params[:id] 
end 
end 
13

Excelente pregunta!

  • in_place_editing es por DHH, rieles creador. Lo mantiene el equipo central de Rails. Por lo tanto, sin duda debe ser examinado.

  • Hobo es un marco grande que presenta edición frontal y central en el lugar. Es un paquete sencillo pero puede ser más de lo que usted quiere o necesita.

Actualización de los carriles 3 Ryan, de Railscasts recomienda la gema Best in Place. Consulte el Railscast con código de muestra y más información.

+6

Tenga en cuenta que 'in_place_editing' está basado en Scriptaculous. Rails 3.1 y versiones posteriores usan jQuery ahora, por lo que ya no es una solución lista para usar. – Ben

+2

@ Ben - Actualicé la respuesta. –