问题标签 [ruby-on-rails-3.2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - `validates` 错误消息的位置
我最近遇到了我试图执行rake db:seed
但失败的问题。经过相当多的时间搜索查看日志并尝试确定问题的原因后,我意识到我的种子数据错误,在以下验证中被我的模型拒绝:
我只能通过复制和粘贴我的种子数据并尝试通过收到错误消息的相应视图输入它来识别这一点must be a URL for GIF, JPG or PNG image.
。
validates
执行时错误消息发送到哪里rake db:seed
?
ruby-on-rails - Rails 3.2.1:在视图中调用未定义的方法会导致测试挂起 30 多秒
我正在将我的应用程序从 3.0.9 升级到 3.2.1(ruby 1.9.3-p0、rvm、bundler),而我还无法追踪的一件事就是这个问题。我有一个控制器规范(在规范/控制器中),它为每个示例呈现视图。它呈现的模板可以有任何未定义的方法(例如在 haml 中调用“- blahblah”),它会导致测试挂起超过 30 秒。这是错误:
我运行了调试器,但在尝试记录错误本身时发生了挂起。这发生在activesupport-3.2.1/lib/active_support/notifications/instrumenter.rb line 22
. 那么这是 Rails 的错、haml 的错还是其他一些库?
这是我的 Gemfile,以防万一我使用的东西可能是问题:
谢谢!
ruby-on-rails-3.1 - Rails 3.1 respond_with does not work in production
I have a view folder that contains many js.coffee files that are called when various controller actions are executed. It is called when a remote form is submitted and is triggered in the controller by the respond_with line. I'm giving the create method as an example. It's important to note that all of this works PERFECTLY in development mode. In production, I've made sure I've precompiled my assets, ran bundle install --deployment etc.
users_controller.rb
The following Jquery should be executed after the the record is saved and does so perfectly in development mode. It is important to note that the record is created, however the following file is never executed
create.js.coffee
This is the error that is being thrown in production.
ruby-on-rails - rails 3.2 和机械师问题
我刚刚使用 Ruby 1.9.3-p0 升级到 Rails 3.2.1,我正在使用 Machinist 2.0。在更新一个大型项目之前,我的所有测试都通过了。我遇到的问题是,当我在 rspec 测试中的“让”调用中创建蓝图,然后在 before do 块中引用它时。
这曾经有效,现在我收到以下错误:
这是我的蓝图:
现在我的工作是使用 before do 块中的实例变量来创建它们,但是使用“let”调用会很好,因为它可以让我的 rspec 测试更干净。
ruby-on-rails-3.2 - 从 Rails 3.1 升级到 3.2 获取 NoMethodError for unserializable_attribute?,使用 JRuby、Oracle 和二进制数据
我有一个使用在 JRuby 上运行的 Oracle 构建的简单 Rails 3.1 CRUD 应用程序。模型类具有存储在 Oracle blob 列中的二进制数据的属性。
在 3.1 上一切正常,但在使用 Rails 3.2 运行时,它会抛出 NoMethodError 寻找 unserializable_attribute?。我可以回到 3.2 而无需更改任何其他内容,因此很明显它与 rails 版本的更改有关。
unserializable_attribute?从文件 activerecord-jdbc-adapter-1.2.2/lib/arjdbc/oracle/adaptor.rb 调用
从 grepping 源,方法 unserializable_attribute?似乎在 activerecord-3.1.3/lib/active_record/attribute_methods/read.rb 中定义。但是那个方法在 read.rb 的 3.2 版本中已经不存在了。
所以我猜测 activerecord-jdbc-adapter 需要一些更改才能与 Rails 3.2 的更改一起使用。
还有其他人遇到这个吗?或有如何解决的建议?
ruby-on-rails - 助手在 rails 3(.2) 中使用大量内存
在将 rails 2 应用程序迁移到 rails 3 时,我发现使用的内存大幅增加。经过一番研究,我发现助手是问题所在。取消注释视图中的任何助手将加快一切。
我试图找到真正问题的事情:
- include_all_helpers = 假
- 禁用部分帮助文件
- 通过将 Model.all 使用重构为一些更快的代码来清理代码
我现在有一个理论,一些助手可能被重命名或删除,rails 开始搜索它们并开始搜索模型/控制器作为救援。
页面请求最多需要 5 秒并使用 2 GB 内存。
任何人都知道导致此问题的原因以及如何修复或调试它?
ruby-on-rails - Rails 3.2.1 开发模式非常慢
为什么我的 Rails 开发环境如此缓慢?我在日志中看到 2-3 秒的通话时间,控制器操作的实际时间约为 10 秒。大量时间似乎都花在了资产管道上。
到目前为止,像 rails-dev-tweaks 这样的宝石并没有真正的帮助。
- 我的设置:
- OS X 全面更新
- Ruby 1.9.3-p0 通过 rvm
- 导轨 3.2.1
- MySQL 通过自制软件安装
- 服务器 POW 或 webrick
日志输出:
paperclip - NoMethodError(nil:NilClass 的未定义方法“新”):尝试创建照片对象时
当我尝试将使用 POST 方法发送的数据分配给对象时,出现以下错误。
在控制器中:
在模型中:
在路线:
已安装的宝石:
有趣的是,在另一个项目中,相同的代码运行良好。该项目中的宝石:
我添加了一个 gem 'aws-sdk',但它没有任何帮助。迁移文件:
我没有解决这个问题的想法。谢谢你的帮助
ruby-on-rails - Rails在模型中渲染json部分
在我们的 rails 3.2 应用程序中,我们使用 Jbuilder 来呈现我们的 json 响应(这里没什么特别的)。json 视图可以像这样简单:
_model_name.json.jbuilder
我们经常需要返回一个深度嵌套的 json 对象,而 Jbuilder partials 非常适合这个:
_page.json.jbuilder
最后一个示例将检索页面,以及嵌套的 page_images、json 表示......再次没什么特别的。
通常,单个部分会调用另一个部分,并且可能会返回 2 或 3 层深的嵌套 json 对象。
问题
就像我上面提到的,我们使用 Jbuilder partials 将多个 partials 快速链接在一起,为视图形成一个深度嵌套的 json 对象。我们还需要将这些完全相同的嵌套对象构建为哈希(而不是 json),并使它们可用于模型。
使用 .attributes 让 Jbuilder 对象输出散列很简单!方法,但是我们在让 Jbuilder 访问模型中的视图部分时遇到了一些严重的困难。
查看 Jbuilder 源代码,看起来 JbuilderTemplate 类需要访问控制器上下文才能使一切正常工作。
我们可能会尝试这样的事情:
上面的例子显然是不正确的,但它说明了需要做什么。我只是不确定如何从模型传递初始化控制器,然后传递控制器上下文。
我们正在关注的一些线索:
任何人都可以帮助我们指出正确的方向吗?
ruby-on-rails-3 - 在执行 Rails assets:precompile 时如何运行一些初始化程序?
背景
我有一个最近更新到 Rails 3.2.1(来自 Rails 3.0.x)的应用程序,并重构了 JS 和 CSS 资产以利用新的资产管道。该应用程序使用 Celadon Cedar 堆栈托管在 Heroku 上。
应用配置
我将特定于应用程序的配置保存在名为 app_config.yml 的 YAML 文件中,并使用初始化程序将其加载到全局 APP_CONFIG 变量中:
Heroku 上的资产编译
Heroku 支持 Cedar 堆栈中内置的 Rails 资产管道。当您将应用程序推送到 Heroku 时,它会自动调用rake assets:precompile
服务器作为部署过程中的一个步骤。但是,它在没有数据库访问或正常 ENV 变量的沙盒环境中执行此操作。
如果允许应用程序在资产预编译期间正常初始化,则会在尝试连接到数据库时抛出错误。这很容易通过将以下内容添加到 application.rb 文件中来解决:
我的问题
设置时initialize_on_precompile = false
,不会运行任何初始化程序config/initializers/*
。我遇到的问题是我需要 APP_CONFIG 变量在资产预编译期间可用。
如何load_app_config.rb
在资产编译期间加载而不初始化整个应用程序?我可以对group
传递给 Rails::Application.initialize 的参数做些什么吗??