que sigo el pragmático Agile Web Development libro con rieles 4ª Edición, pero estoy usando Rails 3.2.2 3.0.5 en vez de como se recomienda en el libro:Rails 3.2.2 rjs no ejecutar
~$ ruby -v
ruby 1.9.3p125 (2012-02-16) [i686-linux]
~$ rails -v
Rails 3.2.2
Me quedé atrapado al incluir AJAX para volver a dibujar el carrito sin volver a cargar la página. Aquí está la acción de crear en line_items_controller.rb:
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
respond_to do |format|
if @line_item.save
format.html { redirect_to(store_url) }
format.js
format.json { render json: @line_item, status: :created, location: @line_item }
else
format.html { render action: "new" }
format.json { render json: @line_item.errors, status: :unprocessable_entity }
end
end
end
Y aquí es mis archivos create.js.rjs RJS (menores app/views/line_items):
page.alert('NO PROBLEM HERE')
page.replace_html('cart', render(@cart))
Sin embargo, cuando haga clic en el botón que inicia esta acción:
<%= button_to 'Add to Cart', line_items_path(:product_id => product), :remote => true %>
me sale el siguiente error en el registro de desarrollo:
ActionView::MissingTemplate (Missing template line_items/create, application/create with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
* "/home/me/src_rails/depot/app/views"
):
app/controllers/line_items_controller.rb:47:in `create'
Si cambio el nombre del archivo de create.js.rjs a create.js.erb, el problema se corrige:
Rendered line_items/create.js.erb (0.4ms)
pero no pasa nada en la vista .... ni siquiera la alerta. ¿Qué me estoy perdiendo? ¿Cuál es la diferencia entre file.js.erb y file.js.rjs?
hey guy! Encontré tu publicación en google. Enfrenté la misma situación. ¿Encontraste la solución? – code4j
¡Solucioné el problema! Ver mi [solución] (http://stackoverflow.com/questions/12220816/the-ajax-request-cannot-see-the-effect-without-refresh-the-browser-in-rails/12224196#12224196). Espero que esto pueda ayudarte. – code4j