Tag: ruby on rails

没有Rails内置帮助程序使用AJAX的最佳实践?

在我的博客应用程序中,一些post显示为摘录 – 即,用户看到第一个(比如说)500个字符,并且可以单击链接查看整个post。 以下是相关部分: post) %> wrote this ago length, :omission => “…Click here for more!”) %> 但是,而不是“点击此处了解更多!” 将用户带到一个单独的页面,我希望它能够填充内联的其余部分。 目前,我已经通过将上面的代码片段放在以下div中来实现这一点: <div class="post" id="post_”> ‘post_content’, :locals => { :post => post, :length => 500 } %> 然后我在我的application.js中使用这个div的id来做AJAX: $(document).ready(function() { $(“a.more”).click(function() { var url = $(this).attr(‘href’); var id = url.split(“/”)[2] $.get(url, null, function(data) { $(“#post_” + id).html(data); […]

Rails 3:如何让用户在表单中选择至少一个复选框?

我有一个表单,用户在提交表单之前必须至少检查一个复选框。 是否有任何插件可以处理这个或可能应用于我的表单的jquery? 不幸的是,我是一个完全jquery的新秀。

如何阻止远程表单提交?

我有一个可以远程和正常使用的表单。 = form_for @comment, html: { class: ‘comment-form’ }, remote: request.xhr? do |f| = f.text_area :body = f.submit 我希望表单仅在body textarea具有内容时才提交: $(document).on ‘submit’, ‘.comment-form’, (e) -> text = $(this).find(‘#comment_body’).val() false if text.length < 1 当表单不是Ajax时,该代码有效。 但是当它处于远程状态时,它会失败并且表单仍然会提交。 为什么? 我也尝试过: if text.length < 1 e.preventDefault() false 我正在使用带有Turbolinks的Rails 4。 更新:我尝试绑定ajax:beforeSend事件,它仍然提交: $(document).on ‘page:load’, ‘.comment-form’, -> $(this).bind ‘ajax:beforeSend’, -> alert “hi” […]

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项目中使用coffee脚本,但问题是它只在我加载(刷新)页面而不是页面呈现时才有效,它也应该在页面视图更改时起作用。 这是我正在使用的脚本: facebook.js.coffee jQuery -> $(‘body’).prepend(”) $.ajax url: “#{window.location.protocol}//connect.facebook.net/en_US/all.js” dataType: ‘script’ cache: true window.fbAsyncInit = -> FB.init(appId: env[“app_id”], cookie: true) $(‘#sign_in’).click (e) -> e.preventDefault() FB.login (response) -> window.location = ‘/auth/facebook/callback’ if response.authResponse $(‘#sign_out’).click (e) -> FB.getLoginStatus (response) -> FB.logout() if response.authResponse true

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 = […]

在rails中的remote_function中传递表单构建器?

我有选择框在哪里更改我需要获取值,并通过远程函数从数据库获取一些字段名称,然后生成这些字段进一步向下选择框中的选项框中的选项。 问题是字段在f.form_for中,因此正在使用带有选择框的formbuilder f。所以当我通过控制器中的ajax渲染部分时,我得到一个错误,因为我没有对本地的引用表格建设者 有没有人知道如何或如果我可以获得对表单生成器的引用orif可以在远程函数调用中传递它然后传递到部分中的本地? 非常感谢,任何帮助都会很棒,因为长期以来一直困扰着这个! 欢呼瑞克

Rails javascript数据库查询

如何从javascript进行PUT,POST或DELETE调用? 我使用jquery拖放收集了一些数据。 我如何将其发送到数据库? 我想我可能能够使用jQuery.ajax,但无法确切地知道如何。 任何指针赞赏。 解: 这是有效的JavaScript $(document).ready(function() { $.ajax({ type: “PUT”, url: “/articles/8″, // should be mapped in routes.rb data: {articles:{name:”New Name”}} }); }); 但它并没有将第8条的名称改为新名称。 Firebug没有显示错误,但我仍然无法将数据传递给编辑。 url是使用put url的标准更新,它存在于路由中。