2011-03-04 45 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