2014-09-11 14 views
6

Nie jestem zaznajomiony z ajaxem ani rubinem na szynach. Ja sam nauczyłem się wykonywać projekt.Jak ajax odzyskać dane z ruby ​​na kontrolerze szyn

Teraz mam problem, chcę użyć ajax do pobierania danych z kontrolera.

nie jestem pewien jak napisać część URL:

$.ajax({ 
    type:"GET", 
    url:"books", 
    dataType:"json", 
    success:function(result){ 
    alert(result); 
    } 
}) 

książki jest nazwą mojego kontrolera (książka jest jednym z moim stole)

ten kod działa, ale zamiast pobierać wszystkie dane z książek, chcę tylko część z nich. powiedzieć jakieś dane w teście działania w moim kontroler książek

def test 
    @test=books.find.last 
    respond_do |format| 
    format.html 
    format.json {render ;json=>@test} 
    end 
end 

ale gdy zmienię adres do Książki/testu, będę się komunikat o błędzie powiedzieć 404 nie znaleziono w dzienniku konsoli.

Jak mogę odzyskać część danych kontrolera? Z góry dzięki

+0

Czy wspomniałeś o akcji testowej w routes.rb? czy możesz także udostępnić swoje routes.rb? – Unknown

Odpowiedz

9

Więc co próbujesz tu zrobić, to stworzyć non trasę relaksującego nazwie Test. Więc trzeba dodać to do routes.rb (patrz here aby uzyskać więcej informacji):

resources :books do 
    collection do 
    get 'test' 
    end 
end 

Jeśli chcesz, możesz przekazać swoje parametry tak:

$.ajax({ 
    type:"GET", 
    url:"books/test", 
    dataType:"json", 
    data: {some_parameter: 'hello'}, 
    success:function(result){ 
    alert(result); 
    } 
}) 

które mógłbyś wtedy użyj w tej metodzie testu:

def test 
    some_parameter = params[:some_parameter] 
    # do something with some_parameter and return the results 

    @test=books.find.last 
    respond_do |format| 
    format.html 
    format.json {render json: @test} 
    end 
end 
+0

jak dokładnie URL będzie wywoływał metodę testową w kontrolerach książek? – Surya

+0

Przepraszam, że to opuściłem. Zaktualizowałem moją odpowiedź. – manishie

+0

Możesz chcieć zmienić '// zrób coś z some_parameter i zwróć wyniki' na' # zrób coś z some_parameter i zwróć wyniki' ponieważ to nie jest poprawny komentarz w Ruby? A także, jeśli możesz zwrócić JSON w bloku respond_to. – Surya

Powiązane problemy