Tag: ruby on rails

Rails 5 – turbolinks 5,一些JS没有在页面上加载渲染

我有一个Rails应用程序,我最近更新到5.0.0.RC1 。 大部分过渡进展顺利,但我在使用新的Turbolinks时遇到了一些麻烦。 在我的应用程序中我例如使用此gem: gem ‘chosen-rails’ 我的application.js文件如下所示: //= require jquery //= require jquery.turbolinks //= require jquery_ujs //= require best_in_place //= require tether //= require bootstrap //= require chosen-jquery //= require_tree . //= require turbo links 当我点击链接并呈现视图时,我chosen-query ( best_in_place也不起作用)在初始加载中不起作用,但是如果我对页面进行了硬刷新,则它可以正常工作。 下面是我得到的结果的图像: 以下是我希望它看起来的图像: 再次,如果我对页面进行了硬刷新,那么预期的外观会有效,但是在常规redirect_to …之后不会redirect_to … 我的下拉列表的代码如下所示: = select_tag :screen, options_from_collection_for_select(@screens, “id”, “name”), id: “screen-selection”, prompt: “Jump to […]

防止在Rails AJAX表单中提交双重提交

是)我有的: 我有一个表单,我通过AJAX提交。 true ) do |f| %> … “btn btn-primary”, :id => “annotation-submit-button” %> 我想要的是: 我想防止双重提交。 由于表单仅在请求成功完成后消失,因此只要数据库尚未完成数据写入,用户就可以单击提交按钮。 显然,我不希望这样。 我尝试过的: 我尝试将此添加到提交按钮本身 – 但它不起作用。 该按钮被禁用,但没有数据被发送。 :onclick => “this.disabled = true” 我也尝试在提交按钮中添加一个点击处理程序。 这与以前的效果相同。 实际上没有数据发送到控制器,但是按钮被禁用。 $(“#annotation-submit-button”).click(function(event) { $(this).attr(“disabled”, “disabled”); return false; }); 也尝试相同而不返回false 。 禁用该按钮后没有任何反应。 $(“#annotation-submit-button”).click(function(event) { $(this).prop(“disabled”, “disabled”); }); 我开始认为这是Rails特有的?

使用Paperclip在ror中多次上传

我正在使用回形针为一栋建筑上传一张照片。 http://www.youtube.com/watch?v=KGmsaXhIdjc我用这种方式完成了它。 但我知道我决定将许多照片上传到一栋建筑物。 我可以用回形针做到这一点,还是必须改变它并使用jQuery? 如果我能怎么样? Ps:如果需要,我会上传我的代码。 ps:我想在照片2和照片3的数据库中再制作2列 。顺便说一下,我看到所有产生的资产都是为了做到这一点。 我认为我用不同的方式上传1张照片。 这意味着我必须改变一切吗? 更新1: 在routes.rb中 resources :buildings do resources :photos end 在buldings> _form {:multipart => true}) do |f| %> prohibited this building from being saved: ‘Select status of the building’ %> 10 %> <!– –> 在模型>建筑 attr_accessible :description, :price, :status, :title, :photo accepts_nested_attributes_for :photo, :allow_destroy => true has_attached_file […]

ruby on rails jquery提交表格作为js

我在我看来有这个代码: true, :method => “get”, :url => {:action => “show_workflow_list”} do |f| %> (“this.form.submit()”)}%> 当我更改下拉列表中的值时,表单将被提交为: Processing by DeploymentGroupController#show_workflow_list as HTML Parameters: {“utf8″=>”Γ£ô”, “folder_name”=>{“foldernames”=>”DETAIL_ADJUSTMENT” 当我添加一个提交按钮而不是:onchange=>如下所示: true, :method => “get”, :url => {:action => “show_workflow_list”} do |f| %> 请求是这样提交的: Processing by DeploymentGroupController#show_workflow_list as JS Parameters: {“utf8″=>”Γ£ô”, “folder_name”=>{“foldernames”=>”DETAIL_ADJUSTMENT” 我在show_workflow_list操作中有以下代码: def show_workflow_list //some code respond_to do |format| format.js end […]

Rails用’read more’切换截断

我有一个段落,我想要截断,可以选择点击“阅读更多”,并将其与其余内容一起滑开。 内容来自数据库字段。 这是我对截断的看法: 250, :omission => ‘… Read More’)%> 我似乎无法通过从数据库中提取数据来找到这种方法。 我看到很多使用全文的示例,以及要隐藏在单独div标签中的文本。 但是,由于此内容来自数据库并且是动态的,因此无法找到有关如何执行此操作的任何信息。

找不到’jquery-ui’Rails 3.2

我一直在寻找解决这个问题的方方面面。 我已经在我的gemfile中将jquery-rails gem降级为2.3.0。 但是当我在application.js中包含jquery-ui时,我仍然会收到Sprokets :: FileNotFound错误。 couldn’t find file ‘jquery-ui’ (in /home/richard/projects/pickaxe/mini-projects/depot-app/app/assets/javascripts/application.js:14) 这是我的application.js文件: // This is a manifest file that’ll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or vendor/assets/javascripts of plugins, if any, can be referenced here using […]

在javascript认为文档“准备好”之前,如何让我的茉莉花测试装置加载?

我相当肯定问题是jquery绑定设置为在$(document).ready上运行没有可用的fixture html。 因此,当我发生的事件旨在通过jquery函数对DOM进行更改时,没有任何反应,并且我的测试失败了。 我在这里看到了这个问题的“解决方案”,但是那个对我有用的解决方案,需要改变我的工作jquery函数来绑定.live方法而不是.click方法。 我有两个问题。 首先,我不想更改我的工作代码,以便测试正确通过。 测试框架应该测试代码是否可以在应用程序中工作,其中DOM加载和javascript绑定以正确的顺序发生。 我对解决方案的第二个问题是.on和.delegate由于某种原因都不起作用,而且最终工作的唯一方法是使用当前正在弃用的.live方法。 总之,我想弄清楚如何更改我的测试或测试框架本身,以便在$(document).ready中运行的函数之前加载fixture。 我正在使用rails 3.2.8,我设置了两个不同的分支来试验茉莉花测试。 其中一个分支使用jasminerice gem,另一个使用jasmine-rails gem。 Javascript和jQuery(当使用.live方法时)测试所有这两个菜单中的正确传递。 以下是使用jasminerice的分支的描述: 以下是我的Gemfile.lock文件中描述jasmine和jQuery设置的行: jasminerice (0.0.9) coffee-rails haml jquery-rails (2.1.3) railties (>= 3.1.0, 0.14) Jasminerice默认包含jasmine-jquery扩展。 jasmine-jQuery扩展提供了我在测试中使用的toHaveText方法。 直接位于spec / javascripts目录中的测试文件jasmine_jquery_test.js包含以下内容: #= require application describe (“my basic jasmine jquery test”, function(){ beforeEach(function(){ $(‘My test link’).appendTo(‘body’); }); afterEach(function(){ $(‘a#test_link’).remove(); }); it (“does some basic jQuery […]

jquery pjax请求发送两次

我有一个rails应用程序,我继续得到一个奇怪的行为与pjax请求。 当我查看我的开发日志时,我可以看到正在发出两个请求。 第一个请求是pjax而下一个请求不是。 结果页面仍然重新加载。 如果有人能帮助我,我感激不尽。

网络摄像头图片直接文件附件

所以我有一个表单,用户可以通过这种forms上传图片。 作为替代方案,我希望他们能够拍照并上传。 现在我认为当用户使用某种闪存网络摄像头界面拍照时,该图片需要存储在某种中间存储器中,同时用户完成他/她的表格。 有没有解决的办法? 什么是最好的解决方案? 我认为只有两种选择。 (a)我持有临时照片,然后在提交表格后再次接受或(b)用户拍照,将其下载到本地机器上,他们必须选择它作为要再次提交的文件。 这些解决方案都不是我真正满意的,所以我想知道是否有更好的方法来做到这一点。 编辑:作为一个额外的奖励,虽然它不是真正相关,我正在使用Paperclip制作Rails应用程序以获取文件附件。 另外,我更喜欢使用jQuery … 此外,来自经验丰富的UI Web开发人员的一般意见也不错..

jQuery ajaxForm返回.json文件

我在rails中有一个模型创建表单,我也通过ajax返回JSON。 到目前为止我的代码看起来像: $(‘#new_stem’).ajaxForm({ //#new_stem is my form dataType: ‘json’, success: formSuccess }); function formSuccess(stemObj) { //does stuff with stemObj } 我有一个带有文件上传器的多部分表单(但我不确定这是否相关)。 当我提交表单时,它工作正常(我的模型正确创建并呈现为json),但是不是由formSuccess函数处理的json,而是提示下载“stems.json”(我的词干创建的路径)动作)在Firefox中。 会导致这种情况发生的原因,以及可以解决的问题是什么? 不确定这是否是问题的一部分,但我的表单中没有提交按钮,我有一个链接,点击处理程序调用$(’#new_stem).submit() 多谢你们! 编辑:Firebug告诉我标题包含以下内容: Etag “b53e5247e7719cf6b1840e2c6e68781c” Connection Keep-Alive Content-Type application/json; charset=utf-8 Date Mon, 03 May 2010 02:19:31 GMT Server WEBrick/1.3.1 (Ruby/1.8.7/2010-01-10) X-Runtime 241570 Content-Length 265 Cache-Control private, max-age=0, must-revalidate 加上一个cookie标题