Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。

7
Rspec没有看到我的模型Class。未初始化的常量错误
我正在Ruby on Rails应用程序中针对我的模型在Rspec上编写测试。并且在启动“ rspec spec”时收到此错误 command: /spec/models/client_spec.rb:4:in `<top (required)>': uninitialized constant Client (NameError) 我使用Rails 4.0.0和Ruby 2.0.0 这是我的client_spec.rb: require 'spec_helper' describe Client do it 'is invalid without first_name', :focus => true do client = Client.new client.should_not be_valid end end 和Gemfile: source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' …

8
LEFT OUTER加入Rails 3
我有以下代码: @posts = Post.joins(:user).joins(:blog).select 旨在查找所有帖子并返回它们以及相关的用户和博客。但是,用户是可选的,这意味着INNER JOIN该:joins生成没有返回大量记录。 如何使用它来生成一个LEFT OUTER JOIN?

4
Faker在factory_girl中使用时正在生成重复数据
我正在尝试使用Faker gem将一些虚假数据填充到工厂中: Factory.define :user do |user| user.first_name Faker::Name::first_name user.last_name Faker::Name::last_name user.sequence(:email) {|n| "user#{n}@blow.com" } end 但是,尽管我希望这会产生具有不同的first_name和last_names的用户,但每个用户都是相同的: >> Factory(:user) => #<User id: 16, email: "user7@blow.com", created_at: "2011-03-18 18:29:33", updated_at: "2011-03-18 18:29:33", first_name: "Bailey", last_name: "Durgan"> >> Factory(:user) => #<User id: 17, email: "user8@blow.com", created_at: "2011-03-18 18:29:39", updated_at: "2011-03-18 18:29:39", first_name: "Bailey", …

4
Rails 3.0中的Arel到底是什么?
我知道这是ActiveRecord的替代品,并且它使用对象而不是查询。 但... 为什么这更好? 对象/查询将更容易创建吗? 会导致更有效的SQL查询吗? 与所有主要数据库兼容吗?-我想会的。 使用存储过程会更容易/更难吗?

5
Rails中正确的SCSS资产结构
所以,我有一个app/assets/stylesheets/目录结构,看起来像这样: |-dialogs |-mixins |---buttons |---gradients |---vendor_support |---widgets |-pages |-structure |-ui_elements 在每个目录中,有多个sass部分(通常是* .css.scss,但是一个或两个* .css.scss.erb)。 我可能有很多假设,但是rails应该由于*= require_tree .application.css中的内容而自动编译那些目录中的所有文件,对吗? 我最近尝试通过删除所有颜色变量并将它们放在根app/assets/stylesheets文件夹(_colors.css.scss)中的文件中来重组这些文件。然后,我在根app/assets/stylesheets文件夹中创建了一个名为master.css.scss的文件,如下所示: // Color Palette @import "colors"; // Mixins @import "mixins/buttons/standard_button"; @import "mixins/gradients/table_header_fade"; @import "mixins/vendor_support/rounded_corners"; @import "mixins/vendor_support/rounded_corners_top"; @import "mixins/vendor_support/box_shadow"; @import "mixins/vendor_support/opacity"; 我不太了解Rails如何处理资产编译的顺序,但是显然这对我不利。似乎没有文件意识到要导入任何变量或mixins,因此会引发错误,因此我无法编译。 Undefined variable: "$dialog_divider_color". (in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb) Undefined mixin 'rounded_corners'. (in /home/blah/app/assets/stylesheets/widgets.css.scss) 该变量$dialog_divider_color在_colors.css.scss中明确定义,并且_master.css.scss正在导入颜色和所有我的mixins。但是显然,rails没有得到该备忘录。 有什么办法可以解决这些错误,还是需要将所有变量定义以及所有mixin导入放回到每个文件中? 不幸的是,这个家伙似乎并不认为有可能,但我希望他错了。任何想法都将不胜感激。

3
Rails迁移:self.up和self.down与变更
看起来新的Rails版本相对于self.up和self.down方法具有“更改”功能。 因此,当必须回滚迁移时会发生什么情况,它如何知道要执行的操作。我需要基于在线教程实现以下方法: class AddImageToUsers < ActiveRecord::Migration def self.up add_column :users, :image_file_name, :string add_column :users, :image_content_type, :string add_column :users, :image_file_size, :integer add_column :users, :image_updated_at, :datetime end def self.down remove_column :users, :image_file_name, :string remove_column :users, :image_content_type, :string remove_column :users, :image_file_size, :integer remove_column :users, :image_updated_at, :datetime end end 如何使用新的更改方法执行相同操作?

2
Capistrano中的“角色”到底是什么?
Capistrano配方中“角色”的目的和功能是什么?当我查看示例食谱时,经常会看到类似以下内容: role :app, 'somedomain.com' role :web, 'somedomain.com' role :db, 'somedomain.com', :primary => true 因此,角色似乎基本上是Capistrano执行命令的服务器。如果是这样,那么为什么将其称为“角色”而不是“主机”或“服务器”? 在上面的示例中,:app和:web角色有什么区别? 该:primary => true选项有什么作用?

10
生成具有所有RESTful功能的控制器
我正在尝试生成具有所有RESTful操作的控制器。我在Wikibooks上读过-Ruby on Rails,我所需要做的就是用控制器名称调用生成器,而我会得到的。所以,我跑了,script/generate rspec_controller Properties但是控制器空了。 任何其他建议将不胜感激。

6
如何判断滑轨是否在生产中?
我用了 script/server -e production在生产模式下启动Rails。做到了,我没有任何错误。但是,如何知道它是否处于生产模式?我尝试了一条不存在的路由,并且在开发中遇到了类似的错误页面。 我想如果在生产模式下,我会在/ public文件夹中看到404错误页面。 这是否意味着它没有在生产模式下启动? 谢谢你的帮助。


13
字符串“ true”和“ false”为布尔值
我有一个Rails应用程序,并且正在使用jQuery在后台查询我的搜索视图。有字段q(搜索词)start_date,end_date和internal。该internal字段是一个复选框,我正在使用该is(:checked)方法来构建要查询的网址: $.getScript(document.URL + "?q=" + $("#search_q").val() + "&start_date=" + $("#search_start_date").val() + "&end_date=" + $("#search_end_date").val() + "&internal=" + $("#search_internal").is(':checked')); 现在我的问题在于,params[:internal]因为有一个包含“ true”或“ false”的字符串,我需要将其强制转换为布尔值。我当然可以这样: def to_boolean(str) return true if str=="true" return false if str=="false" return nil end 但是我认为必须有一种更Ruby的方式来解决这个问题!没有...吗?

19
Bundler:更改Gemfile后,您尝试以部署模式安装
我对捆扎机和capistrano还是很陌生,我正在尝试将它们一起使用。当我尝试部署时,我收到消息: 更改Gemfile后,您尝试以部署模式安装。在其他地方运行“捆绑安装”,然后将更新的Gemfile.lock添加到版本控制中。 我不知道如何使投诉的系统满意,并且我不明白为什么会提出投诉,因为我在doc中阅读过: 如果确实存在Gemfile.lock,并且您已经更新了Gemfile(5),则捆绑程序将对所有未更新的gem使用Gemfile.lock中的依赖关系,但将重新解析已更新的gem的依赖关系。您可以在下面的“保守更新”中找到有关此更新过程的更多信息。 我将其解释为意味着Bundler可以处理我的Gemfile超出预期的事实。有什么帮助吗? 规格:部署到Posix机器上的Ruby 1.9.3,Rails 3.2.3,Capistrano 2.12.0,Bundler 1.1.4,Windows 7。 编辑:我的Gemfile包含如下逻辑块: unless RbConfig::CONFIG['host_os'] === 'mingw32' # gem 'a' ... end

8
AWS OpsWorks与AWS Beanstalk与AWS CloudFormation?
我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation的优缺点是什么? 我对可以自动缩放以处理大量同时Web请求(从每分钟1000个请求到1000万rpm)的系统感兴趣,包括一个可以自动缩放的数据库层。 理想情况下,我想有效地共享一些硬件资源,而不是为每个应用程序单独分配实例。过去,我主要使用EC2实例+ RDS + Cloudfront + S3 堆栈系统将在我们从Heroku迁移的Rails应用程序,一些python / django应用程序和一些PHP应用程序上托管一些高流量的红宝石。 提前致谢。

15
rails install pg-找不到'libpq-fe.h标头
$ sudo bundle install 结果 Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Using rake (0.9.2.2) Using i18n (0.6.1) Using multi_json (1.3.6) Using activesupport (3.2.8) Using builder (3.0.4) Using activemodel (3.2.8) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.1) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike …

4
RSpec:希望更改多个
在功能说明中提交表单时,我想检查模型中的许多更改。例如,我要确保将用户名从X更改为Y,并且将加密密码更改为任何值。 我知道已经有一些问题了,但是我没有找到合适的答案。最准确的答案似乎ChangeMultiple是迈克尔·约翰斯顿(Michael Johnston)的匹配者:RSpec是否有可能期望在两个表中进行更改?。它的缺点是只能检查从已知值到已知值的显式更改。 我创建了一些伪代码,说明我认为更好的匹配器看起来像: expect { click_button 'Save' }.to change_multiple { @user.reload }.with_expectations( name: {from: 'donald', to: 'gustav'}, updated_at: {by: 4}, great_field: {by_at_leaset: 23}, encrypted_password: true, # Must change created_at: false, # Must not change some_other_field: nil # Doesn't matter, but want to denote here that this field exists ) …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.