Javascript 如何将Rails变量传递给AJAX响应函数?

Javascript 如何将Rails变量传递给AJAX响应函数?,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,我用AJAX写: $.ajax({ URL: '/new_avatar', type: 'POST', data: { username: 'alizade' }, success: function(response){ alert(response); }, }) Route.rb: post '/new_avatar' => 'avatars#new_avatar' Avatar.rb模型: self.new_avatar(usern

我用AJAX写:

$.ajax({
   URL: '/new_avatar',
   type: 'POST',
   data: { username: 'alizade' },
   success: function(response){
       alert(response);
   },
 })
Route.rb:

post '/new_avatar' => 'avatars#new_avatar'
Avatar.rb模型:

self.new_avatar(username)
    Avatar.where(username: username).select('avatar').last
end
头像控制器:

def new_avatar
    @username = params[:username]
    @result = Avatar.new_avatar(@username)
end

那么,如何将@result发送到AJAX响应函数并警告数据库选择结果呢?

您需要在控制器方法中使用
render:text

def new_avatar
    @username = params[:username]
    @result = Avatar.new_avatar(@username)
    render :text => "#{@username} has this result:- #{@result.inspect}"
end

假设您只需要此服务的响应,您可以使用以下方法获得结果

def new_avatar
   @username = params[:username]
   render :json => Avatar.new_avatar(@username)
end

现在作为响应,我得到了带有空主体部分的html页面代码。我怎样才能修好它?你的答案能解决问题吗?我能得到答案吗?现在我得到了带有空主体部分的html代码。我不知道为什么你应该在警报中创建化身。不,我想从数据库表列AvatarId中获取化身的路径。你的意思是“路径”,在化身数据库表中列名为“路径”,或者rails avatar pathNo,它只是数据库表“avatar”列中的记录。您的代码(呈现json)返回null