Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向rails控制器发出的Ajax请求在传递范围时不返回数据记录_Javascript_Jquery_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Javascript 向rails控制器发出的Ajax请求在传递范围时不返回数据记录

Javascript 向rails控制器发出的Ajax请求在传递范围时不返回数据记录,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我向rails控制器中的一个操作发出ajax请求,该操作在超过上限和下限时从数据库返回一系列模型实例。出于某种原因,如果我请求像这样的模型。messages[params[:lower_limit].to_i..params[:upper_limit]]它不会返回任何东西,即使在我自己输入数字时它仍然有效 下面是我的代码: ajax调用: $.ajax({ type: 'get', url: '/messages/get', dataType: '

我向rails控制器中的一个操作发出ajax请求,该操作在超过上限和下限时从数据库返回一系列模型实例。出于某种原因,如果我请求像这样的模型。messages[params[:lower_limit].to_i..params[:upper_limit]]它不会返回任何东西,即使在我自己输入数字时它仍然有效

下面是我的代码:

ajax调用:

$.ajax({
        type: 'get',
        url: '/messages/get',
        dataType: 'script',
        data: {lowerLimit: $('.message-list li').length, 
                     upperLimit: $('.message-list li').length + 10, 
                     resource: 'Event',
                     id: $('#event-id').text() }
    });
控制员:

def get
  @resource = params[:resource].constantize.find(params[:id])
  @messages = @resource.messages[(params[:lowerLimit].to_i)..(params[:upperLimit].to_i)]
end
我的成功函数当前如下所示:

console.log(<%= params[:lowerLimit] %>,<%= params[:upperLimit] %>);
$('.message-list').append('<%= escape_javascript(render partial: "partials/message_list", locals: { messages: @messages, list_container: false }) %>');
ajaxInProgress = false;
if (<%= escape_javascript (!@messages.any?).to_s %>) { needsUpdate = false };
console.log(,);
$('.message list')。追加('');
ajaxInProgress=假;
如果(){needsUpdate=false};

请求完成后,它会将两个数字记录到参数中,因此我假设它们在服务器端是绝对正确的。有人能想出一个可能导致这种情况的原因吗?提前感谢。

您可以添加
routes.rb
和控制台输出吗?安装调试程序gem(如
byebug
)并从控制器中调用它,您会帮自己一个忙。然后您可以确切地看到运行时参数值是什么。您在
message
方法中做什么?你愿意和我分享吗?您正在传递一个
数组
,该数组的第一个元素是
范围对象
它是您想要的吗?尝试注释掉
$.ajax()
块和
控制台.log()
$('.message list li')。长度
$('.message list li')。长度+10
$(''event id')。text()。确保你能看到全部3个。