2011-03-04 44 views
0

我的個人資料/ index.html.haml, 我AJAX GET請求(js.erb在軌) - URL /命名問題

:javascript 
    $(document).ready(function(){ 
    $('#clickablething').click(function() { 
     $.get('/profile', {**passed in json data**}, null, 'script'); 
    }) 
    }); 

這就要求我index.js.erb當點擊事件發生。不過,我想知道如何重命名.js.erb文件。只有/profile(或./profileprofile)專門致電index.js.erb。如果我重命名文件profile.js.erb它不工作,(我試過設置的URL profile.jsprofile.js.erbprofile/profile.js和其他變化,但這些都是無效的請求,如螢火顯示。

基本上我想命名index.js.erbprofile.js.erb或別的東西,並想知道如何引用它在我的get通話

謝謝!

編輯:現在這對我來說真的很重要,因爲我有2+ js.erb文件,我會喜歡在不同事件發生時通過ajax GET調用,所以我不能只堅持一個index.js.erb我該怎麼做?什麼是阿賈克斯呼籲onescript.js.erbanotherscript.js.erb

回答

0

我決定把一切都在index.js.erb的,只跑我有條件需要的部分...

0

index操作默認index.html.haml或index.js.erb的渲染,但你可以告訴它呈現profile.js.erb如果這是你想要的...

你取得動作與檔案欄服務無關。改變你的控制器是這樣的:

def index 
    respond_to do |format| 
     format.js { render 'profile/profile' } 
    end  
end 
+0

但如果我想它做一個ajax GET獲得profile.js.erb當我點擊什麼東西,並且當我點擊其他東西時對anotherscript.js.erb發出不同的請求? – butterywombat 2011-03-20 19:44:34

+0

profile.js.erb和anothercript.js.erb只是文件... Rails不會以任何方式將它們提供給世界......除非您有控制器操作呈現它們。因此,要回答你的問題,你首先需要建立一個新的路由和一個新的動作控制器,就像上面那個服務器anotherscript.js.erb所代表的那樣。然後,您可以對路由中映射的控制器操作執行ajax。索引是你的控制器的默認路由,你應該定義另一個。一個非常好的指導[這裏](http://guides.rubyonrails.org/routing.html)。 – alexcepoi 2011-03-20 22:16:11

0

你有沒有正確的路由/profile/profile.js?

resources :profiles 
    get :profile 
end 

之後,你可以再試一次。

+0

不工作:( – butterywombat 2011-03-20 19:42:52