问题标签 [ruby-on-rails-3.1]

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.

0 投票
1 回答
558 浏览

ruby-on-rails-3.1 - Rails 3.1.rc1 图像标签

我正在尝试在我的项目中实现 Rails 3.1,但我的 image_tags 都没有工作。

我真的需要嵌套的 has_many :through,这就是我选择升级的原因。

我知道 images/javascripts/stylesheets 现在应该进入 app/assets/

但是由于我的主题很复杂,我想将它们公开/

我该怎么做呢?

image_tag、javascript_include_tag 和 stylesheet_tag 仅在资产目录中查找。

控制台输出示例

该文件实际上位于“public/images/icons/small/white/Alarm Bell.png”

谢谢

0 投票
2 回答
4499 浏览

ruby-on-rails - 通过资产管道携带 Sass 变量,Rails 3.1 rc1

我最近将我的一个 Rails 3.0 项目与 3.1 rc1 分支在一起,以尝试新的资产管道。在进入 3.1 之前,我一直在项目中使用 Sass,所以我一直在一个单独的配置文件中设置一些变量和函数,并让我的所有其他 sass 文件在第一行导入那个文件。

在样式表中不重复一些颜色代码和一般几何图形的效果很好。现在新资产管道的问题是,据我所知,它会将“.css.sass”文件转换为原始 css,然后再将其附加到其余代码中。

因此,如果我指定,在我的“application.css”中:

我收到如下错误:

当我尝试从以下位置访问文件时:http://localhost:3000/assets/application.css

有任何想法吗?

0 投票
1 回答
3499 浏览

ruby-on-rails - 我如何在 Rails 3.1 中需要 /app/assets/javascripts 的子目录

我想在我的 Rails 3.1 应用程序中将我的 javascripts 分离到单独的子目录中。

例如,我在 /app/assets/javascripts 中有一个 /modules 目录

一种需要目录的所有内容或单独要求每个文件的方法会很有帮助。

编辑:为了澄清,我想从我的 application.js 咖啡脚本文件中做到这一点。

0 投票
2 回答
457 浏览

ruby-on-rails - 可以将 Rails 3.1 用于新项目吗?很难转换吗?

我刚刚开始使用 3.0.7。我大约有 2 周的开发时间。

我想知道我是否应该继续为 3.0.7 构建或切换到 3.1,然后才能移植太多代码?我喜欢大多数新功能(我唯一担心的是在使用咖啡脚本时没有好的错误消息),所以如果它相对安全,我想编写最新最好的代码。

javascript 标准看起来很有趣,而且 attr_accessible 修复听起来非常受欢迎。

Rails 3.1 是否与所有的 gem 兼容?

另外,如果我走 3.1 路线,将我的项目迁移到它是困难还是容易?怎么可能呢?

我想这是很多迷你但相关的问题。我真的很感激一些答案。谢谢你。

0 投票
2 回答
7097 浏览

sql - Rails:混合 NOSQL 和 SQL 数据库

我正在寻找更好的方式(又名架构)来拥有不同类型的数据库( MySQL + MongoDB )来支持同一个 Rails 应用程序。

我在推测一个主要的 Rails 3.1 应用程序,安装 Rails 3.1 引擎链接每个不同类型的数据库......

...或者有一个主要的 Rails 3.0.x 应用程序为每个 MySQL/MongoDB istance 路由一个 sinatra 端点...

你认为有可能......有什么想法或建议吗?

我注意到其他一些类似的问题,但我认为“安装应用程序”在 Rails 3.1 / Rack / Sinatra 中发展迅速,我们都需要调整我们的范例。

在此先感谢 Luca G. Soave

0 投票
29 回答
80889 浏览

javascript - 使用 Rails 3.1,您将“特定于页面”的 JavaScript 代码放在哪里?

据我了解,您所有的 JavaScript 都会合并到一个文件中。//= require_tree .Rails 在添加到application.js清单文件底部时默认执行此操作。

这听起来像是一个真正的救生员,但我有点担心特定于页面的 JavaScript 代码。这段代码会在每一页上执行吗?我想要的最后一件事是为每个页面实例化我的所有对象,而这些对象只需要在一页上。

此外,是否也有可能发生冲突的代码?

或者你是否script在页面底部放置一个小标签,它只是调用一个执行页面的javascript代码的方法?

那么你不再需要 require.js 了吗?

谢谢

编辑:我很欣赏所有的答案......而且我认为他们并没有真正解决问题。其中一些是关于样式的,似乎并不相关......而其他人只是提到javascript_include_tag......我知道存在(显然......)但看起来 Rails 3.1 的前进方式是总结所有您的 JavaScript 到 1 个文件中,而不是在每个页面的底部加载单独的 JavaScript。

我能想出的最佳解决方案是用s 或es将某些功能包装在div标签中。在 JavaScript 代码中,您只需检查或是否在页面上,如果是,则运行与其关联的 JavaScript 代码。这样,如果动态元素不在页面上,JavaScript 代码就不会运行——即使它已包含在Sprockets 打包的海量文件中。idclassidclassapplication.js

我上面的解决方案的好处是,如果 100 个页面中有 8 个包含搜索框,它将仅在这 8 个页面上运行。您也不必在网站的 8 个页面上包含相同的代码。事实上,您再也不必在任何地方的网站上包含手动脚本标签。

我认为这是我问题的实际答案。

0 投票
1 回答
385 浏览

ruby-on-rails - Rails 3.1rc1 to_param, from_param 没有效果?

正如我习惯的那样,我在最近的 Rails 3.1rc1 应用程序中尝试了类似以下内容:

不幸的是,这似乎不再有任何影响。当我要求:

发出以下 SQL:

为了实现我的目标,我还可以简单地:

我知道,但这不是我想解决这个问题的方式。

你们有人对我有什么建议吗?提前谢谢。

菲利克斯

0 投票
1 回答
2985 浏览

ruby-on-rails - 如何设置蜻蜓与 S3 一起使用?

在我的initializers/dragonfly.rb我放了这个:

但不起作用,应用程序仍在本地保存文件。我错过了什么?

编辑:我改为Dragonfly[:app_name]并且Dragonfly[:images]它有效。为什么我需要设置:images,如果我可以上传任何类型的文件?

0 投票
3 回答
851 浏览

cucumber - 测试 Rails 3.1 模型创建时的 ActionDispatch::ClosedError (RSpec/Cucumber)

我正在使用 Ruby on Rails 3.1 (RC1) 创建一个 Web 应用程序。我正在使用Factory GirlRSpecCucumber(与Ca​​pybara )进行测试,但是当我创建新用户(通过 User 模型的创建操作)ActionDispatch::ClosedError时,有时(不是每次)我都会遇到意外的提升。以下是我收到的错误消息:

使用这些创建用户的方式时会引发错误:

  • 使用工厂女孩创作
    • Factory.create( :user )
    • Factory.build( :user ).save
  • 基础创作
    • User.create( { ... } )
    • User.new( { ... } ).save

有趣的是,它们在某些测试中确实有效,但在其他测试中无效,而且似乎不是随机的,尽管我无法弄清楚原因。以下是我的代码的摘录:

users_controller_spec.rb

需要'spec_helper'

但是,以下代码块中未引发错误:

describe 'GET edit' do it 'assigns the requested user as @user' do get :edit, id: user.id # 这不会引发错误 assigns[ :user ].should == user end end

即使我以完全相同的方式创建用户,低于此的任何其他方法都不会引发错误。

任何关于我可能做错的建议将不胜感激!

0 投票
1 回答
1379 浏览

ruby-on-rails - 在 rails 3.1.rc1 的 javascript 资产中使用路径

myjavascript.js.erb我的资产路径中有一个文件。这是我放置所有与项目相关的 javascript 等的地方。

据我了解,rails 首先通过 erb 解释器运行该文件,然后加载生成的 JS 文件。

我的文件中有以下行

我希望这会记录项目的根路径,但不幸的是它似乎只会让我

当然这应该指向我的项目的根源?难道我做错了什么?