Tag: ruby on rails 3

使用jquery在rails上的ruby中动态选择

嘿伙计我有一个问题我试图在以下代码中实现动态选择。 我有产品和产品有很多批次。 只要我选择产品关联批次,就应该显示。 表格详情如下。 Product.in_stock %> “Select Batch”%> 和表格的jquery如下 jQuery(document).ready(function(){ var child = jQuery(‘.batch’).html(); jQuery(‘.prod’).change(function() { var parent = jQuery(‘.prod :selected’).text(); var escaped_parent = parent.replace(/([ #;&,.+*~\’:”!^$[\]()=>|\/@])/g, ‘\\$1′) var options = jQuery(child).filter(“optgroup[label=’#{escaped_parent}’]”).html() if (options) { jQuery(‘.batch’).html(options); return jQuery(‘.batch’).parent().show(); } else { jQuery(‘.batch’).empty(); } }); }); 现在问题是options返回null。 我发现当我做alert(options)它显示为空。 任何人都可以请我正确的方向? 有没有其他方法可以完成我的任务。 提前致谢 :)

nested_form gem add工作但删除失败…为什么?

我正在使用GitHub的瑞安贝茨的nested_form gem的madebydna版本(可以在https://github.com/madebydna/nested_form找到)。 我正在使用分叉版本来支持jQuery而不是Prototype。 更新:检查页面底部是否有此问题的更新。 编辑: 我正在使用:RoR v3.0.5,jQuery v1.4.3,Ruby v1.9.2 结束编辑 编辑:似乎传递给服务器的pictures_attributes参数的当前结构导致问题,至少从我在其他网站上看到的。 目前发送的结构如下: “pictures_attributes”=>{“0″=>{“_destroy”=>”1”, “id”=>”5”}} 我见过的所有其他网站,pictures_attributes错误都有以下结构: “pictures_attributes”=>[{“_destroy”=>”1”, “id”=>”5”}] 我不确定如何改变我的代码以使后者发生,而不是前者。 思考? 结束编辑 我按照指示到T,添加链接非常适合添加嵌套模型,但删除失败。 换句话说,我可以为特定模型添加多个字段,并在我提交表单时创建并保存这些模型,但是当我再次编辑同一条记录并去除我刚刚创建的嵌套模型时,它们会失败要从相关记录中删除。 这是在安装nested_form gem之后生成的nested_form.js脚本。 原谅但我创建了一个Pastie并减少了它: http : //bit.ly/ge5BO7 以下是相关的型号代码: has_many :pictures, :as => :imageable, :dependent => :destroy accepts_nested_attributes_for :pictures, :allow_destroy => true, :reject_if => lambda { |a| a[:photo].blank? } 这是视图代码(在_form.html.erb部分中): 这是为一个字段生成的HTML: Photo Remove Photo 这是提交表单时生成的日志条目: […]

为什么Rails无法在Internet Explorer的Ajax请求中访问会话?

我在sessions_helper中有以下代码: def current_user @current_user ||= User.find_by_remember_token(cookies[:remember_token]) end 这让我从任何控制器调用current_user来获取当前用户。 (我从头开始使用类似于Railstutorial或Railscasts的身份validation)。 我有一个名为lookup_result ajax请求,它检查服务器以查看特定结果是否已准备就绪。 $.get(“/lookup_result?id=”); 它转到以下控制器方法: def lookup result user = current_user # do things with user… end 这通常可以正常工作,但有时Rails无法获取current_user。 我怀疑问题是cookie或CSRF令牌在某些情况下无法通过ajax请求传递,但为什么它通常有效? 我如何修复它以便始终有效? 更新: 我不知道如何复制错误。 只有已登录的用户才能访问发送该请求的页面(尽管有人可以将ajax请求复制到另一个未登录的浏览器中)。 我用rollbar报告错误并保存请求数据。 当current_user失败时,这是user-agent的常用数据: Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; InfoPath.1; …) 这意味着Internet Explorer通过Ajax发送会话信息存在一些问题。 有人知道怎么修这个东西吗? 下面你可以看到它返回的所有数据类别,尽管它对于任何包含“session”的内容都是空的。 时间戳 message.request_data.headers.Accept message.request_data.headers.Accept编码 message.request_data.headers.Accept语言 message.request_data.headers.Cf-Connecting-Ip //(CF代表cloudflare) message.request_data.headers.Cf-Ipcountry message.request_data.headers.Cf雷 […]

使用jquery-rails缺少rails.js

我是Rails 3.1的新手,最近开始了一个项目。 我的Gemfile包含jquery-rails,如下所示: gem ‘jquery-rails’ 事实上,我已经在我当前的RVM gemset(使用gem list )中validation了它的存在(版本1.0.19)。 我开始使用支持Ajax的表单,从Googling阅读各种文章和post,看来我应该在我的javascripts文件夹中有一个名为rails.js文件(我假设这是assets/javascripts/ ,并且我正在使用默认资产管道)。 我的问题实际上涉及两个部分: 即使在bundle install ,我也无法在我的项目中找到rails.js文件,所以我从https://github.com/rails/jquery-ujs下载了它并将其放在我的assets/javascripts/文件夹中。 这是正确的做法吗? 在包含rails.js ,我的Ajax表单现在提交了三次。 经过进一步调查,似乎我的所有javascript(或jquery ???)被调用了三次。 当我点击一个对象的“破坏”链接(当你使用rails g scaffold something来支撑rails g scaffold something时产生的那种)时,确认弹出窗口也会出现三次。 删除rails.js文件也会删除此问题。 任何帮助或建议将不胜感激…我一直在谷歌和SO搜索几个小时,并没有得到任何地方。 谢谢!

自动播放youtube和soundcloud相互嵌入

我有一个音乐博客,其中包含一系列youtube和soundcloud嵌入。 我想一个接一个地自动播放页面上的所有嵌入内容。 换句话说,在youtube嵌入我播放结束之后,我希望下一个嵌入式开始播放,无论是来自soundcloud还是youtube,反之亦然。 呈现的HTML如下所示: 我从这个来源获得了帮助: 在播放Soundcloud时暂停Youtube嵌入 要跟踪页面上的哪些玩家,他们属于哪个api,以及他们当前正在玩哪个玩家: var playerCurrentlyPlaying = {“api”:null,”frameID”:null}; var players = {“yt”:{},”sc”:{}}; 我需要定义一个通用的playNext函数,该函数在playerCurrentlyPlaying结束时调用。 根据下一个嵌入的api,playNext函数必须执行正确的播放命令。 为了找到下一个嵌入,该函数可能会将当前播放iframe的ID增加1.这样如果id =“ui-id-2”刚刚结束,那么id =“ui-id-3”应该播放。 有时这些YouTubevideo会崩溃,并说“video不再存在”或“上传者已在您所在的国家/地区无法使用”。 在这些情况下,我如何检查崩溃并跳到下一个递增的ID(例如id =“ui-id-4”)? 此video已不存在:

best_in_place“:nil”函数在AJAX插入部分时不起作用

我的页面上有一个记录列表。 我通过AJAX远程提交表单,新记录将附加到列表中。 所有best_in_placefunction都可以立即使用:nil选项。 这不显示我设置的默认值。 除非用户刷新页面,否则无法编辑该值。 然后该值存在,用户可以单击。 这是一个已知的错误? 有人可以推荐一个解决方案吗? 更新了我的代码: account_post_path(account,post), :type => :select, :collection => Post::POST_TYPES.zip(Post::POST_TYPES), html_attrs: { “class” => “span2” }, :nil => “Click to assign” %> 这是在一个名为_post.html.erb的部分内部,它通过create.js.erb文件插入: $(“#js_posts”).prepend(” @post, :account => @account %>”); $(“#js_add_post_button”).button(‘toggle’); $(“#js_add_post”).collapse(‘hide’); $(“#js_add_post”).html(” Post.new, :account => @account %>”);

Rails动态更改集合在表单中选择基于表单域

我有一个跟踪呼叫的Rails 3.2.14应用程序,每个呼叫都有一个关联设施模型的提取和下降设施。 在呼叫模型中,区域模型(即休斯顿,达拉斯,奥斯汀等)有一个关联,我们根据呼叫的来源选择区域。 我想做的是能够选择一个特定的区域(即休斯顿),而在拾取设施集合中只显示休斯顿地区的设施。 我假设开始时我需要在Facility和Region之间建立关系: facility.rb attr_accessible :region_id belongs_to :region region.rb has_many :facilities 然后我需要为每个设施设置一个与相应区域匹配的region_id(即休斯顿,达拉斯等),以便关联正常工作。 我不确定的是如何选择特定区域,只在该区域中显示设施。 我假设我会在这里使用一些jQuery / JS / Ajax来实现它但不确定如何使它工作。 以下是我的电话,设施和地区模型目前的样子摘录: call.rb belongs_to :transferred_from, :foreign_key => :transfer_from_id, :class_name => ‘Facility’ belongs_to :transferred_to, :foreign_key => :transfer_to_id, :class_name => ‘Facility’ belongs_to :region facility.rb has_many :calls_transferred_from, :foreign_key => :transfer_from_id, :class_name => ‘Call’ has_many :calls_transferred_to, :foreign_key => :transfer_to_id, :class_name […]

Rails 3:通过jQuery提交远程表单 – 防止页面重新加载

这里我的rails表格如何: – form_tag rel_references, :remote => true, :id=>”references_form”, :method => ‘get’ do = text_field_tag :rel_id, params[:rel_id], :id=>”reference_form_rel_id” = submit_tag “Get references”, :id => “referencesubmit” 我需要使用jQuery基于DOM元素的HTML动态填充textfield #reference_form_rel_id,然后从同一个jQuery函数中提交此表单(远程)。 所以这就是我在做的事情: $(“.classname”).live(‘click’,function(){ var relationship_id = $(‘#id_store’).html().trim(); $(‘#reference_form_rel_id’).val(relationship_id); // populate the text field $(‘#references_form’).submit(); // submit the form }); 现在,表单确实已提交,但是,它没有远程提交,并且页面重新加载因此失败了:remote => true的目的。 请指导我如何通过jQuery正确提交rails远程表单。 谢谢!

你可以在rails中的自定义javascript文件中使用嵌入式ruby吗?

如何在javascript for rails中嵌入ruby代码? 我知道你可以在javascript响应器中轻松地执行此操作方法(例如在create.erb.js中)。 但有没有办法使用javascript_include_tag为应用程序中包含的其他自定义JavaScript文件执行此操作? 例如,在create.erb.js中,我可以编写代码,例如 有没有办法在自定义的js文件中使用这种类型的嵌入,例如在整个应用程序中使用的custom.js,而不仅仅是为format.js生成响应。 谢谢, Tabrez

预加载表单数据

我正在使用Ryan Bates在Railscasts Episode 197中说明的技术,以便当用户向表单添加更多项目时,表单可以“增长”。 这一切都很好,但我需要在提供初始项目作为URL的一部分时调用页面。 由于Ryan的技术让用户单击一个Add按钮来调用jQuery函数来向表单添加字段,我有点陷入困境,如何将信息从控制器传递给jQuery来调用 – 并预填充 – 这些新字段之一。 我在想这个错吗?