我已经尝试了所有的谷歌搜索技巧,但我还无法找到问题的解决方案。
我正在尝试使用ajax从jquery向controller方法发送参数。调用方法后,它将呈现其各自的视图页面。但它甚至没有进入ajax代码来调用控制器方法(通过检查)。我想我正在做一些非常愚蠢的事情,但无法弄明白,请帮助我。
我的控制器方法代码:
def profile
@prof = User.where(:id => params[:id])
end
我的.js文件
$(document).ready(function(){
$('.table tr').click(function(){
$.ajax({
url: "users/profile",
type: "POST",
data: {id: $(this).attr('id')},
success: function (data) {
alert(data);
}
});
});
});
我的路线档案:
resources :users, :only => [:new, :create, :index,:profile]
match 'users/profile' => 'users#profile', :as => :profile
答案 0 :(得分:1)
在routes.rb
中尝试此操作resources :users, :only => [:new, :create, :index]
get 'users/profile/:id' => 'users#profile', :as => :profile
并改变你的js方法:
$(document).ready(function(){
$('.table tr').click(function(){
$.ajax({
url: "/users/profile/" + $(this).attr('id'),
type: "GET",
success: function (data) {
alert(data);
}
});
});
});
你的方法应序列化为json,如下所示:
def profile
@prof = User.where(:id => params[:id])
respond_to do |format|
format.json { render :json => @proof }
end
end
答案 1 :(得分:0)
更改你的js方法:
$(document).ready(function(){
$('.tr_class').click(function(){
$.ajax({
url: "/users/profile?id="+$(this).attr('id'),
type: "GET",
success: function (data) {
alert(data);
}
});
});
});
你的方法应序列化为json,如下所示:
def profile
@prof = User.where(:id => params[:id])
respond_to do |format|
format.json { render :json => @proof }
end
end