调用控制器方法时,Ajax调用在rails中失败

时间:2014-03-30 18:52:17

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4

我正在开发一个场景,只要用户点击表格行,就会使用ajax刷新<div>标记。但由于某些问题,它总是收到"alert(fail)"消息。 当我用"HI"文本替换视图文件时,它可以工作..但是当有下面提到的表单时,它会显示失败警报。请帮忙。

.JS文件

$(document).ready(function(){
    $('.tab tr').click(function(){
        var val= $(this).attr('id');
        alert(val);
    $.ajax({
           url: "/users/profile/",
           type: "GET",
           data: {'id': val},
           success: function(response){
              $(".tab").html(response) 
            },
           error: function(response) {
                        alert('fail');
                      },
});

   });
    });

我的控制器方法:

def profile 
@prof = User.where(:id => params[:id])

respond_to do |format|
format.html {}
end

方法的观点:

<%= simple_form_for(@prof, :html => {:class => 'form-vertical'}) do |f| %>
<%= f.error_notification %>
<%= f.first_name %>
<%end%>

2 个答案:

答案 0 :(得分:1)

以下代码中的where方法返回一个数组:

@prof = User.where(:id => params[:id])

但是在您看来,您指的是单个项目:

<%= f.first_name %>

使用where替换控制器中的find方法,该方法返回单个项目:

@prof = User.find(params[:id])

答案 1 :(得分:0)

我认为你的网址应该是

url: "/users/profile"

不是

url: "/users/profile/"