2014-09-11 14 views
6

Tôi không quen thuộc với ajax cũng không ruby ​​trên đường ray. Tôi đã tự học cách làm dự án.Làm thế nào ajax lấy dữ liệu từ ruby ​​trên bộ điều khiển ray

Bây giờ tôi gặp phải sự cố, tôi muốn sử dụng ajax để truy xuất dữ liệu từ bộ điều khiển.

Tôi không chắc chắn làm thế nào để viết phần url:

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

sách là tên của bộ điều khiển của tôi (cuốn sách là một trong những bàn của tôi)

mã này làm việc, nhưng thay vì lấy tất cả dữ liệu từ sách, tôi chỉ muốn một phần của nó. nói một số dữ liệu trong thử nghiệm hoạt động trong điều khiển cuốn sách của tôi

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

nhưng thay đổi khi tôi url sách/kiểm tra, tôi sẽ nhận được một thông báo lỗi nói 404 không tìm thấy trong giao diện điều khiển đăng nhập.

Làm thế nào tôi có thể lấy lại một phần của dữ liệu điều khiển? Cảm ơn trước

+0

Bạn có đề cập đến hành động thử nghiệm trong các tuyến đường không? bạn có thể chia sẻ routes.rb của bạn không? – Unknown

Trả lời

9

Vâng những gì bạn đang cố gắng làm ở đây là tạo ra một con đường không RESTful gọi là thử nghiệm. Vì vậy, bạn sẽ cần phải thêm này vào routes.rb (xem here để biết thêm):

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

nếu bạn muốn, bạn có thể vượt qua các thông số của bạn như thế này:

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

mà bạn có thể sau đó sử dụng trong phương pháp thử nghiệm như sau:

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

chính xác URL của bạn sẽ gọi phương thức thử nghiệm trong bộ điều khiển sách như thế nào? – Surya

+0

Xin lỗi tôi đã bỏ qua điều đó. Đã cập nhật câu trả lời của tôi. – manishie

+0

Bạn có thể muốn thay đổi '// làm điều gì đó với some_parameter và trả về kết quả' thành' # do something_parameter và trả về kết quả' vì đó không phải là một chú thích hợp lệ trong Ruby? Và cũng có thể nếu bạn có thể trả về JSON trong response_to. – Surya

Các vấn đề liên quan