J'ai un problème d'obtenir une réponse JSON, j'ai une action dans mon contrôleurImpossible d'obtenir Rails pour montrer réponse JSON pour une action
def on_card
@cart = current_cart
@on_card = @cart.products_count
respond_to do |format|
format.json { render :json=> @on_card.to_json }
end
end
dans mes application.js j'essaie d'obtenir la réponse former cette action nombre de var;
$.getJSON("carts/on_card", function(data){
count = data;
});
quand je le lance Firebug me montre une erreur:
404 not found
rails can't find carts/on_card action
routes pour le contrôleur de chariots:
resources :carts
match "carts/add/:id" => "carts#add", :as => "add"
match "carts/add_menu/:id" => "carts#add_menu", :as => "add_menu"
match "carts/on_card" => "carts#on_card"
journal:
Started GET "/carts/on_card" for 127.0.0.1 at 2011-05-24 20:31:58 +0300
AbstractController::ActionNotFound (The action 'show' could not be found for CartsController):
CartsController:
class CartsController < ApplicationController
def add
if current_cart == nil
@cart = Cart.new
else
@cart = current_cart
end
@cart.products << Product.find(params[:id])
if @cart.save
session[:cart_id] = @cart.id
redirect_to root_path
else
redirect_to root_path
end
end
def add_menu
if current_cart == nil
@cart = Cart.new
else
@cart = current_cart
end
@cart.menus << Menu.find(params[:id])
if @cart.save
session[:cart_id] = @cart.id
redirect_to root_path
else
redirect_to root_path
end
end
def index
if current_cart !=nil
@cart = current_cart
else
@cart = Cart.new
end
respond_to do |format|
format.html
end
end
def destroy
@cart = current_cart
@product = @cart.products.find(params[:id])
@product.destroy
respond_to do |format|
format.js
end
end
def on_card
@cart = current_cart
@on_card = @cart.products_count
respond_to do |format|
format.json { render :json=> @on_card.to_json }
end
end
end
Par rapport à votre répertoire d'application, où est '' application.js' et chariots/on_card 'stocké? –
que voulez-vous dire? application.js dans public/javascripts et on_card dans le contrôleur de chariots. Je pense toujours que le problème est en action, je dlete la route à carts/on_card et j'essaie d'y accéder et les rails me donnent toujours le même message: Action inconnue L'action 'show' est introuvable pour CartsController – Maki
can vous accédez aux chariots/on_card directement à partir du navigateur? –