Tag: ruby on rails 3.1

如何在Rails 3.1中初始化ActionDispatch :: ParamsParser?

我的应用程序为其Rest接口定义了一个自定义Mime类型。 所以我在mime_types.rb初始化器中注册它: Mime::Type.register “application/vnd.example.app-v1+xml”, :xml_v1 和Rails正确处理控制器中的respond_to块。 但是,我仍然需要告诉Rails,使用ActionDispatch :: ParamsParser将传入的请求解析为XML。 我只是不知道如何在初始化器中使用它。 什么是正确的方法?

防止缓存单个js文件

我的资产目录中有一个.js.erb文件。 这将读取一些特定于语言环境的配置 但是,当底层配置更改时,新文件未提供给我的浏览器。 我没有修改304。 如果我通过添加空格来更改.js.erb文件,则会正确提供新文件。 每次添加配置时都这样做会很痛苦。 有没有办法配置rails只是为了不缓存这个特定的文件? 谢谢你的任何建议。 编辑: 在资产管道上阅读更多内容 “在服务器启动后,资产在第一个请求上被编译和缓存.Sprockets设置必须重新生效的Cache-Control HTTP头以减少后续请求的请求开销 – 在这些请求上获得304(未修改)响应。 如果清单中的任何文件在请求之间发生了变化,则服务器将使用新的编译文件进行响应。“ 所以这里的问题是第一个请求被缓存 – 这是一个动态的javascript文件。 也许是防止这种缓存内联javascript的唯一方法?

在Rails 3.1基于资产的应用程序中包含两次javascript

虽然问题的标题与以前的标题非常相似,但我的问题似乎有所不同。 简而言之,js清单中的第一项包含两次。 这是我在Rails 3.1应用程序中的整个/app/assets/javascript/application.js文件: //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails //= require utilities 这里是渲染页面源代码的片段: 请注意,如果我向application.js任何其他行移动到顶部,如下所示: //= require utilities //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails 它总是第一个被包含两次的项目! UPDATE 作为临时解决方法,我在列表顶部添加了//= require dummy ,它指向一个空的dummy.js文件。 虽然它在渲染页面中出现两次,但它没有任何效果,因为它什么也没做。 另一方面,如果我在development.rb设置config.assets.debug = false ,正如经常建议的那样,那么我的所有javascript都会被加载两次: 和js动作被触发两次(例如,删除模型时确认对话框弹出两次) 朱塞佩

Rails 3.1 – JS – * .js.erb中的Socket.io-emit未执行并阻止执行jQuery-Function

我想在我的Rails-Project中使用node.js来提供异步io。 我不想使用juggernaut,faye或类似的东西,因为我需要与web-socket,服务器发送的事件和spdy的干净连接而没有其他选择。 我第一次尝试使用node.js现在使用Socket.io,只是为了使用JavaScript将数据提供给node.js-module。 但它根本不起作用。 我的application.js看起来像这样: // This is a manifest file that’ll be compiled into including all the files listed below. // Add new JavaScript/Coffee code in separate files in this directory and they’ll automatically // be included in the compiled file accessible from http://example.com/assets/application.js // It’s not advisable to add code directly here, but […]

捆绑exec与heroku – 是否有必要?

我最近在Heroku上设置了一个Cedar(Rails 3.1)应用程序,并且运行,例如,迁移,你会做 heroku run rake db:migrate 我了解到在任何rake命令之前使用“bundle exec”是一个好习惯(正如Katz所说http://yehudakatz.com/ )。 所以,我想也许以下实际上是更好的做法: heroku run bundle exec rake db:migrate 但是为了减少冗长,是否可以使用前一个命令,或者是bundle exec批判的那个?

在coffeescript中获取rails视图辅助方法

我有一个助手,让我们说(为了简单起见) def call_alert return “alert ‘this should appear'” end 然后我有一个coffeescript文件some_test_page.js.coffee ,它呈现一个通过ajax调用的动作。 在some_test_page.js.coffee里面我有: 当我对/ some_test_page进行ajax调用时,我通常希望从coffeescript文件中获取已编译的javascript的响应,并且会发生警报。 但是,似乎无法访问我尝试使用的视图助手。 如果我把一个简单 alert ‘this should appear’ 在我的some_test_page.js.coffee文件中,它工作正常。 我觉得这应该没问题,但也许我正在做一些反常规或愚蠢的事情? 如何在我的coffeescript视图文件中从application_helper.rb获取视图助手?

使用Rspec在模型中测试关系和方法

我正在研究rails项目和我在rails上的新function,我想使用rspec在模型中测试我的模型关系和方法。 我怎么能这样做我的模型关系是这样的 class Idea < ActiveRecord::Base belongs_to :person belongs_to :company has_many :votes validates_presence_of :title, :description def published? if self.status == "published" return true else return false end end def image_present if self.image_url return self.image_url else return "/images/image_not_found.jpg" end end def voted self.votes.present? end end 我的idea_spec.rb文件是 require ‘spec_helper’ describe Idea do it “should have title” do […]

controller.js.coffee中的函数

我在使用CoffeeScript创建函数时遇到了一些麻烦,我想我错过了一些东西。 对于我的用户控制器,我想为注册表单创建客户端validation。 我想我已经错过了这一切如何运作的基本原则。 {:onsubmit => “return validate_signup_form();”} do |f| %> CoffeeScript( assets / users.js.coffee ): validate_signup_form = () -> alert “Hi” return false 预期产量: var validate_signup_form; validate_signup_form = function() { alert(“Hi”); return false; }; validate_signup_form(); 实际输出: (function() { var validate_signup_form; validate_signup_form = function() { alert(“Hi”); return false; }; }).call(this);

Rails 3.1 Sqlite3错误推送到Heroku

我有一个rails 3.1应用程序,我试图推送到Heroku。 当我推动它时它会一直失败。 Installing sqlite3 (1.3.4) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks! /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions’: ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /usr/local/bin/ruby extconf.rb checking for sqlite3.h… no sqlite3.h is […]

为什么f.submit不在Rails 3.1中生成id属性?

我遇到了一个问题,即由于没有找到该元素,以下jquery脚本在Rails 3.1中失败了。 jQuery的 member_submit_button = $(“#member_submit”); HAML = form_for @member do |f| … f.submit “Update details”, :class => “member_submit_button bluebutton” 在Rails 3.0中,这工作正常,我将其跟踪到Rails 3.1而不生成id属性。 在rails 3.0中,标签id =“member_submit”。 这当然可以通过在f.submit调用中添加:id =>“member_submit”参数来轻松解决。 但我想知道这个变化的原因是什么,因为我没有在任何地方看到过这种情况。