2011-09-19 32 views
-2

夥計們對於這個RoR,我真的是新手,在這個時候我遇到了一個複雜的情況:「如何在RoR中使用Jquery的ajax()調用?」如何在RoR中訪問Jquery的Ajax調用?

我有一個項目叫這樣

class ProjectsController < ApplicationController 
    def stagemilestone 
     @milestones=Milestone.find_by_sql("SELECT name, created_at FROM milestones WHERE stage=1") 
    end 
end 

控制器和我想打電話從jQuery的AJAX調用此操作並返回數據,對於這個我用這樣的

$.ajax({ 
    url: "/projects/stagemilestone", 
    success: function(){ 
    //here i need the returned data from controller 
    // means output of @milestones 
    } 
}); 

那麼請幫助我,如何做到這一點?

回答

1

夥計們終於找到解決方案作爲跟隨和工作了不起!

控制器

def stagemilestone 
    @milestones=Milestone.find(:all, :conditions => ["status_id=? and project_id=?",params[:stageid], params[:id]]) 
    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render :json => @milestones} 
    end 
end 

和我char.js看起來像這樣

$.ajax({ 
    type : 'get', 
    url : "/projects/stagemilestone", 
    data : "stageid=" + $(this).attr('name') + "&id=" + $.cookie('projectid'),  
    dataType : 'json', 
    async : false, 
    context : document.body, 
    success : function(response) { 

    } 
    }); 
-1

爲您的成功回調添加一個參數;將包含響應值。

success: function(response) 
{ 
    // response will be the HTTP/JSON/text returned from your controller 
} 
+3

爲什麼downvote? – Tejs

+0

雅這樣做,但它仍然不工作,告訴我2件事 1]我是否需要爲Action添加回報?說 類ProjectsController

+0

誰加入downvote? :( –

-1

只是一個參數添加到回調函數,如:

$.ajax({ 
    url: "/projects/stagemilestone", 
    success: function(output){ 
    //Do something with 'output' 
    } 
}); 
0

我想你想要的是用 「的respond_to」

這樣

class ProjectsController < ApplicationController 
    def stagemilestone 
    @milestones=Milestone.find_by_sql("SELECT name, created_at FROM milestones WHERE stage=1") 
    respond_to do |format| 
     format.js {render :json => @milestones} 
    end 
    end 
end 

這裏的更多信息respond_to,http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to

更新:您可能需要仔細檢查您的ajax請求的接受頭(您可以在螢火蟲中查看請求),您可能需要使用format.json。請參考這裏的MIME類型的完整列表,並確保它們匹配: http://apidock.com/rails/Mime

相關問題