Tag: ruby on rails

DataTables表加载Ruby on Rails时显示微调器

使用Rails我已经构建了一个Web应用程序。 Web应用程序的其中一个页面显示一个使用DataTables API的表。 这个JSFiddle显示了我的Web应用程序的样子。 这个问题是,当我开始添加大量数据(当前测试数据是1500行)时,表在运行javascript之前先加载每一行,这意味着在Javascript启动之前,您会获得一个未格式化的表几秒钟和DataTables激活。 我希望显示一个微调器或处理消息(沿着这些线的东西)代替表,直到页面完全填充,一旦完成,我想运行我的javascript激活DataTables。 编辑:我的主要问题是我不知道如何在表加载时使用Javascript显示微调器,但是一旦页面加载完成后再更改为表 我的代码如下: HTML / ERB Header 1 Header 2 Header 3 Header 4 Header 5 Header 6 Header 7 Header 8 Header 9 Header 10 使用Javascript $(document).ready(function() { var table = $(‘#app-list-table’).DataTable({ “scrollX”: true }); }); 如果您还有其他任何想要我加入,请告诉我。

Ruby on rails 4.0 + javascript无法加载

我有一个名为“front.js”的javascript文件我从“application.js”加载,像往常一样使用此代码: //= require front 在“front.js”里面,我想要在文档准备就绪时启动许多function: $(document).ready(function() { $(“#test”).click(function(event){ … }); }); 但问题是“front.js”仅在我手动刷新页面时加载(ctrl + r / f5)而不是当我从一个页面移动到另一个页面时,所以我的javascript代码无法按需执行。 也许这来自turbolinks,我不知道如何处理这个问题。 当我将脚本直接放在html文件中时,它可以工作,但它绝对不是正确的做法。 有人可以帮我吗?

即使请求头中包含正确的x-csrf-token,也不要在Ajaxpost上设置current_user

使用:Rails 3.0.7设计1.4.5 jquery-rails 1.0.14 通过ajax发布数据时,Devise没有设置current_donor。 我的请求标头如下所示: Host localhost:3000 User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0) Gecko/20100101 Firefox/6.0 Accept */* Accept-Language en-us,en;q=0.5 Accept-Encoding gzip, deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest x-csrf-token UFhqJrlOA1c1sAPeUTtV/ABcq5IeqkfA842ORcIWwks= 在关联的控制器操作中,查看会话值,我发现以下内容: {“_csrf_token”=>”UFhqJrlOA1c1sAPeUTtV/ABcq5IeqkfA842ORcIWwks=”, “warden.user.donor.key”=>[“Donor”, [485], “$2a$10$OtkItrzVhN4Ussnqy5k1Au”], “session_id”=>”e6693e22275385a58e0915538791ea49”} 这将向我表明csrf_token与期望值匹配。 然而,current_donor仍然是零。 我已经阅读了几篇关于此的post,实际上,在开始时,csrf_meta_tag方法不在我的布局中,并且没有设置csrf标记。 但是,现在不再是这种情况了,正在设置csrf令牌,但我仍然没有得到current_donor值。 当我发出ajax get请求时,current_donor正在正确设置。 如果您对我应该看到的其他地方有任何建议,将不胜感激。 最好,汤姆

在选择框上重新填充日期

我在Rails中创建了一个date_select(这是3个选择框:一个用于一年,一个用于一个月,一个用于一天)。 2月31日对他们来说非常令人困惑。 我希望能够使选择框只有有效日期。 我的意思是,当您选择2月,31日,30日(以及某些年份29日)时,将删除,然后,当您选择1月时,它们会再次添加,依此类推。 此外,我希望初始选择框仅填充所选月份的日期。

:remote => true在表单中使用文件上传器时不起作用

基本上,当我在表单中包含并使用文件上传器时,它似乎取消了:remote => truefunction,并将操作作为HTML代替JS处理。 有任何想法吗?

$ .ajax忽略DELETE请求的数据参数

我刚刚从jQuery 1.3.2更新到1.4.3,我在制作AJAX DELETE请求时看到了一些新的行为。 由于某种原因,我的data参数中传递的data未发送到服务器。 例如: $.ajax({ url: ‘/example’, data: {id: 12}, type: ‘DELETE’ }); 结束向/example发送DELETE请求而没有其他数据。 但是,这种类型的调用传递参数就好了: $.ajax({ url: ‘/example?id=12’, type: ‘DELETE’ }); 还有其他人见过类似的行为吗? 有没有理由不再工作(即:是设计还是错误)? 有关如何使其工作的任何建议? 另外,如果有人想知道为什么我不想简单地将参数作为URL字符串的一部分传递,那是因为我最终尝试使用$.ajaxSetup回调,在那里提供一些通用参数(即authenticity_token参数)用于防止Rails中的伪造)。 在尝试jQuery 1.4.3之前,这一切都运行良好。

如何使用json数组填充Rails下拉菜单

我有一个Ant显示页面,显示有关各种类型ant的详细信息。 在那个页面上有两个下降,一个用于环境:[室内,室外],一个用于饮食:[糖,脂肪,蛋白质]。 当您从每个参数中选择一个参数时,它会根据参数显示一个产品页面。 然而,一些组合导致零,如木匠ant没有与室内糖相关的产品。 我试图根据组合是否为零来获取下拉列表。 如果有人选择室内,我会喜欢糖,如果该组合不存在则不会出现在下一个下拉列表中。 到目前为止,我有两种方法只为可用的项创建json数组: def food_sources food_sources = Ant.find(params[:ant_id]).product_recommendations.where(environment: params[:environment]).map(&:diet) render json: food_sources.to_json end def environments environments = Ant.find(params[:ant_id]).product_recommendations.where(diet: params[:diet]).map(&:environment) render json: environments.to_json end 例如,如果输入 http://localhost:3000/ants/27/food_sources?environment=indoor 进入浏览器返回 [“sugar”,”protein”] 对于id为27的ant,bc只有两种户外室内饮食选择,而不是可能的三种。 我的问题是,如果有人选择了上述组合,我如何将此数组传递到我的rails下拉列表? 编辑 = form_tag ant_product_recommendations_path(@ant.id), id: ‘select_box’, method: :get do |form| %h3 What food source are they currently feeding on? = select_tag :environment, […]

Fancybox – 图像溢出灯箱右侧

看起来这个问题之前已经被问到了 ,但是提问者通过切换到prettyPhoto解决了他自己的问题。 我更愿意弄清楚为什么会发生这种情况,只是为了理解,但如果似乎没有解决方案,我会改变。 还有设置overflow:hidden ,如其中一个答案所述,但我想知道我是否不能只调整框大小,而不是切断我的图像。 我正在使用fancybox 1.3.4和这个 stackoverflow文章中描述的补丁。 我正在使用fancybox zip附带的所有文件(css,js,images)都在资产管道中,并且没有更改,除了更改css文件中的图像路径以便在rails中正确使用图像’资产管道,使用rails image-url helper。 我可以发布CSS,但我不相信它会有所帮助(我可能是错的)。 我正在使用rails 4附带的jQuery。 DOCTYPE是html。 我的application.js文件看起来像: //= require jquery //= require jquery_ujs //= require turbolinks //= require jquery.easing-1.3.pack //= require jquery.fancybox-1.3.4 $(document).ready(function(){ $(“a.image-gallery”).fancybox({ ‘width’: 640, ‘height’:480, ‘autoScale’:true, ‘autoDimensions’:false }); }); 但是,我放入灯箱库的图像溢出了灯箱的右侧。 你可以在这里看看我在firefox 25上谈论的内容。 单击前两个图像之一以查看此问题。 作为参考,我的图像是640×480 png。 我可以采取哪些措施来纠正这个问题?

无限滚动和will_paginate多次附加项目的“下一页”

我正在关注此railscast ,尝试在我的rails应用程序上实现无限滚动页面。 当用户向下滚动到页面底部时,会附加一组新项目并且页面会扩展,但是它会多次附加到页面上,即使数组中的所有项目都已加载,事件也会在滚动时再次触发,再次附加同一组项目多次。 我想要的是每次用户滚动到底部时附加项目的“下一页”,然后在用户再次滚动到底部时随后的下一页。 这是这个函数的jQuery: jQuery -> if $(‘.pagination’).length $(window).scroll -> url = $(‘.pagination .next_page’).attr(‘href’) if url && $(window).scrollTop() > $(document).height() – $(window).height() – 50 $(‘.pagination’).text(‘Fetching more products…’) $.getScript(url) $(window).scroll() 这是相应的javascript $(‘#products’).append(”); $(‘.pagination’).replaceWith(”); $(‘.pagination’).remove();

使用带有rails的jquery auto complete插件的示例

如果有人可以帮助我在rails应用程序中实现自动完成function,那将是非常有帮助的。我尝试了jquery auto complete插件。我无法实现。 我的控制器: def new @testers = User.find_by_sql(“select * from users where id in(select user_id from user_role_assignments where role_id in (select id from roles where name like ‘Tester’)) order by name”).paginate(:page=>params[:page],:per_page=>30) respond_to do |format| format.html # new.html.erb format.xml { render :xml => @release } end end 我想为@testers创建一个自动完成 查看代码: = form.label :tester_tokens, “Testers” = form.text_field […]