Javascript 向rails控制器发出的Ajax请求在传递范围时不返回数据记录
我向rails控制器中的一个操作发出ajax请求,该操作在超过上限和下限时从数据库返回一系列模型实例。出于某种原因,如果我请求像这样的模型。messages[params[:lower_limit].to_i..params[:upper_limit]]它不会返回任何东西,即使在我自己输入数字时它仍然有效 下面是我的代码: 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: '
$.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个。