Tag: ruby

如何在视图文件夹中使用js文件

我在rails上使用ruby,我想渲染部分点击(使用jquery)这个例子: $(‘#submit’).on(‘click’, function(){ $(‘#lol’).append(” ‘myPartial’ ) %>”); } 我基本上想要提交一个表单然后以只读格式显示结果(渲染部分)而不刷新页面。 问题是我无法在资产管道中使用渲染。 如何在视图文件夹中包含我的JavaScript文件,或者这个问题的解决方案是什么?

提交表单而无需通过AJAX重新加载页面

有没有办法将表单提交给服务器以获取AJAX响应而无需重新加载页面。 我可以使用提交按钮执行此操作。 但是,如果单击链接,我该怎么做呢。 我开始知道一个javascript方法来做到这一点, var form = document.getElementById(‘myForm’); form.submit(); 但上面的代码重新加载页面。 我开始知道我们可以用jquery做到这一点,但是怎么样? 请注意,我正在使用Ruby on Rails 3.0.4开发我的应用程序,我正在使用这样的rails AJAX。 true, :url => request_path, :html => {:method => :get, :id => :my_form} do |f| %> 任何帮助,将不胜感激。

在Rails应用程序中结合Scriptaculous和JQuery

我有以下情况 一个rails应用程序,它使用rjs / Scriptaculous来提供AJAXfunction 使用JQuery编写的很多很好的javascript(用于单独的应用程序) 我想结合两者并在我的Rails应用程序中使用基于JQuery的function,但我担心JQuery和Scriptaculous冲突(它们都定义了$()函数等)。 将两者结合在一起的最简单方法是什么? 谢谢!

从对话窗口成功提交表单后如何更新前端内容?

我正在使用Ruby on Rails 3.2.2和jQuery-Rails 2.0.2 gem(包括jQuery UI)。 我有一个jQuery UI对话窗口,当我点击前端内容中的“新评论”链接时,该窗口打开。 当对话框窗口打开时,它会对我的控制器动作执行AJAX HTTP请求,使其呈现并使用HTML表单“填充”模态窗口正文内容。 我想实现我的视图,以便在表单成功提交后 ,前端内容以这种方式更改:触发链接文本更改forms“新注释”到“编辑注释”。 我该怎么做? 你有什么建议? 注意 :表单是通过执行AJAX HTTP请求依次提交的。

将Javascript变量传递给Rails部分

我是Rails的新手,我正在努力完成一项显而易见的任务。 我有一个(剥离)forms: ‘form-inline’ } do |f| %> Order 当我点击’获取报价’并且当符号文本字段失去焦点时,我想在div $(#here)中在Google财经中呈现报价。 我已经编写了代码来提取Ruby中的引用。 在routes.rb中,我添加了: resources :orders do get ‘view_quote’, on: :collection end 在order_controller.rb中我添加了: def view_quote respond_to do |format| format.js { render :layout => false } end end 并在view_quote.js.erb中: sym = $(‘.orders #order_symbol’).val(); $(‘#quotes’).html(“”); 并在_googlequote.html.erb中(我将把逻辑提取引用): 错误发生在view_quote.js.erb中,因为sym未定义。 如果我用第二行替换: $(‘#quotes’).html(“”); 部分渲染,但我当然不需要它。 如何将javascript变量sym传递给部分_googlequote.html.erb? 否则,有没有更好的方法来实现我的目标?

使用先前下拉列表的结果填充下拉列表

我有一个包含Schools和Majors的Rails数据库。 一旦用户选择了他的学校,我想填写专业的下拉,只有相应学校的专业。 目前我有两个工作下降,但你可以看到他们只选择所有值。 我是否需要Json / Ajax / JavaScript,如果是这样,我该如何实现呢?

Rails 4可安装引擎,找不到文件’jquery’

我正在创建一个使用gem“jquery-rails”的rails mountable引擎插件。 我在.gemspec文件中添加了此代码 s.add_dependency “jquery-rails”, “~> 3.0.1” 并运行bundle install , bundle update 。 (BTW是否需要添加?因为rails mountable引擎已经添加了“rails 4.0.1”,这反过来又要求“jquery-rails 3.0.4”作为它的依赖从一开始?)。 在app / assets / javascript / mountable_engine_name / application.js中 //= require jquery //= require jquery-ujs //= require_tree . 但是当我在test / dummy /上运行服务器并访问使用标签的任何模板时,它显示错误“无法找到文件’jquery’” 。 我尝试创建一个全新的可安装引擎插件,但它发生的情况相同。 我做错什么了吗? PS。 对不起我的英语不好。 UPDATE 实际上它发生在app / assets / javascript /和test / dummy / app […]

我的jquery AJAX POST请求无需发送真实性令牌(Rails)

rails中是否有任何规定允许来自站点的所有AJAX POST请求在没有authenticity_token的情况下通过? 我有一个调用控制器方法的Jquery POST ajax调用,但我没有在其中放入任何真实性代码,但调用成功。 我的ApplicationController确实有’request_forgery_protection’,我已经改变了 config.action_controller.consider_all_requests_local 在我的环境/ development.rb中为false 我还搜索了我的代码以确保我没有超载ajaxSend以发送真实性令牌。 是否有一些机制在禁用检查? 现在我不确定我的CSRF保护是否有效。 我正在使用Rails 2.3.5。 更新清晰度: function voteup(url, groupid){ $.ajax({ type: “POST”, url: “/groups/” + groupid + “/submissions/voteup”, data: “url=” + url, dataType: ‘text’, success: function(data){ var counter = “vote_” + url; $(‘#vote_’ + url.cleanify()).text(” ” + data + ” “); } }); }; 我有一个链接,然后有一个调用上述函数的’href: …

Rails:由于某种原因,JS控制器被称为两次

出于某种原因,当我单击一个按钮时,我的控制器和生成的jquery函数被调用两次。 由于调用的js函数是切换,这是一个问题,因为它会导致代码跳入和跳出视图。 这是表格: Unseen Notifications: “seen”, :controller=>”notifications”}, :remote => true %> 这是控制器: def seen respond_to do |format| format.js end end 这是jquery: $(“div#notifications”).toggle(); $(“div#count”).html(” ‘notifications/count’)%>”); 我不知道为什么地球上可能会发生这种情况。 我一直非常小心,不要双击,不知道如何防止它。 任何建议都会有很大的意义。

拥有混合Javascript和ruby的文件是否正确? 即。 (.js.erb)?

我最近读到在JavaScript中嵌入ruby 并不是一个好主意。 然而,在诸如David Heinemeier Hansson的带有Rails的敏捷Web开发之类的书中,这正是它所做的。 如果用JS嵌入ruby不是一个好主意,那么这种情况的最佳实践是什么? 给出一些简单的东西:(jQuery + ruby​​) posts_controller def create @post = Post.new(params[:post]) respond_to do |format| if @post.save format.html { redirect_to(@post, :notice => ‘Post was successfully created.’) } format.js #will use this response to process ajax else format.html { render :action => “new” } end end end create.js.erb $tr = $(”); $td1 = […]