28

Estoy tratando de obtener algo de Javascript trabajando en mi aplicación Rails.Demasiados pocos argumentos

Quiero que mi página de índice me permita editar elementos individuales en la página de índice, y luego volver a cargar la página de índice después de la edición.

Mi página index.html.erb parece:

<div id="index"> 
<%= render 'index' %> 
</div> 

En mi index.js.erb tengo:

$('#index').html("<%=j render 'index' %>"); 

y en mi holders_controller:

def edit 
    holder = Holder.find(params[:id]) 
end 

def update 
    @holder = Holder.find(params[:id]) 
    if @holder.update_attributes(params[:holder]) 
    format.html { redirect_to holders_path } #, flash[:success] = "holder updated") 
    ## ^---Line 28 in error 
    format.js 
    else 
    render 'edit' 
    end 
end 

Cuando cargo la página de índice está bien. Tan pronto como haga clic en el botón de edición y se envía el formulario, me sale el siguiente:

enter image description here

Pero si vuelvo y actualizar la página de índice, los cambios se guardan. ¿Qué estoy haciendo mal?

Respuesta

89

que se olvidó de escribir responds_to bloque:

def update 
    @holder = Holder.find(params[:id]) 
    if @holder.update_attributes(params[:holder]) 
    respond_to do |format| 
     format.html { redirect_to holders_path } #, flash[:success] = "holder updated") 
     format.js 
    end 
    else 
    render 'edit' 
    end 
end 

pero estoy sospechoso sobre su index.html.erb, no creo que realmente va a funcionar la manera de pensar.

+4

'responds_to do' – clyfe

+0

Derecha, gracias. :) – Matzi

+0

@Matzi Tuve que usar 'responds_to do | format |' para que funcione. –

Cuestiones relacionadas