Questions tagged «ruby-on-rails-3»

Ruby on Rails是一个用Ruby编写的开源Web开发框架。Ruby on Rails遵循约定胜于配置的原则,使您不必重新进行发明以保持生产力。仅将此标记用于Rails 3特定问题,并标记这些问题[ruby-on-rails]。



4
Rails迁移:检索当前迁移版本的最佳方法
有没有好的方法来检索迁移版本号? 我需要在模型中实现一个方法,该方法在特定的迁移版本之上和之外具有不同的行为。 我发现连接适配器中的假定为_migrated_upto_version正在从数据库检索版本,但找不到其他版本。 背景:我正在尝试从表A中删除两列,想将它们移到表B中,并从表A添加到表B的关联。 在此更改期间,我需要访问这两列。但是在那之后,我想为这些列添加代理方法以实现兼容性。

5
如何降级捆绑器或升级导轨?
我将omniauth gem添加到我的gemfile中,并尝试运行bundle install,但收到有关Rails和bundler版本不兼容的消息。我尝试更新导轨,但收到有关与其他宝石不兼容的消息。如何将捆绑器降级到1.0? $ bundle install Fetching gem metadata from http://rubygems.org/...... Fetching gem metadata from http://rubygems.org/.. Bundler could not find compatible versions for gem "bundler": In Gemfile: rails (= 3.0.0) ruby depends on bundler (~> 1.0.0) ruby Current Bundler version: bundler (1.1.1) This Gemfile requires a different version of Bundler. …

4
如何在Rails中从名称字符串实例化类?
我们如何在Ruby-on-Rails中从名称字符串实例化类? 例如,我们在数据库中使用“ ClassName”或“ my_super_class_name”之类的格式来命名它。 我们如何从中创建对象? 解: 我自己在寻找它,但没有找到,所以在这里。 Ruby on Rails API方法 name = "ClassName" instance = name.constantize.new 它甚至可以不格式化,我们可以使用用户字符串方法.classify name = "my_super_class" instance = name.classify.constantize.new 当然,这可能不是很“ Rails Way”,但它解决了它的目的。

6
将Rails 3.1与多个数据库连接
在ShowNearby,我们一直在进行从PHP到RoR 3.1的巨大迁移,并且我们面临着一些您可能已经解决的一些问题。 我们拥有大量数据,因此我们决定将数据库分成几个我们可以分别处理的数据库。例如,我们的帐户,地点,日志和其他信息被分为几个数据库 我们需要获得移植,装置,模型才能很好地玩耍,到目前为止,情况一直很混乱。我们对解决方案可接受的一些要求: 一个模型应该与其中一个数据库中的一个表相关。 rake db:drop-应该删除我们在database.yml中指定的所有数据库环境 rake db:create-应该创建我们在database.yml中指定的所有数据库环境 rake db:migrate-应该运行到各种数据库的迁移 rake db:test-应获取固定装置并将其放入各种数据库以及测试单元/功能/等 我们正在考虑为每个数据库设置单独的Rails项目,并将它们与ActiveResource连接起来,但是我们认为这不是很有效。你们有没有处理过类似的问题?



9
工厂女孩创建绕过我的模型验证
我正在使用Factory Girl在模型/单元测试中为组创建两个实例。我正在测试该模型以检查对.current的调用是否根据如下所述的expiry属性仅返回“当前”组... describe ".current" do let!(:current_group) { FactoryGirl.create(:group, :expiry => Time.now + 1.week) } let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } specify { Group.current.should == [current_group] } end 我的问题是,我已经在模型中进行了验证,该模型可以检查新组的有效期是否在今天的日期之后。这会在下面引发验证失败。 1) Group.current Failure/Error: let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } ActiveRecord::RecordInvalid: Validation failed: Expiry is before todays …


29
rails错误,无法解析YAML
更新了宝石之后,我得到了: /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 182 column 9 (Psych::SyntaxError) from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse_stream' from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:119:in `parse' from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:106:in `load' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:6:in `<module:LATEX>' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:3:in `<top (required)>' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `require' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `<top (required)>' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `require' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `<top (required)>' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require' from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `block (2 levels) …

7
删除基于多个列的重复记录?
我正在使用Heroku托管我的Ruby on Rails应用程序,由于某种原因,我可能会有一些重复的行。 有没有一种方法可以基于2个或更多条件删除重复记录,但只保留该重复集合的1条记录? 在我的用例中,我的数据库中有汽车的品牌和型号关系。 Make Model --- --- Name Name Year Trim MakeId 我想删除所有具有相同“名称”,“年份”和“修剪”的Model记录,但保留其中1条记录(这意味着,我需要该记录,但只记录一次)。我正在使用Heroku控制台,因此可以轻松运行一些活动记录查询。 有什么建议么?


3
Rails .where与.find
我注意到即使该Model.where方法没有返回一个结果,该Model.find方法也总是返回一个数组。有什么理由吗?我认为这Model.where是自Rails 3.X以来的首选功能。 Model.find当我期望一个结果并且Model.where期望多个结果时,我应该使用吗?


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.