Tag: ruby on rails 4

如何测试两个时间范围是否重叠?

我需要实现预订function,并确保预订不会在Rails应用程序中重叠。 cover? between? 方法不是我需要的。 与同一型号上的其他潜在范围相比,我必须确保时间范围的唯一性,并且有效地进行。 我认为可以使用overlaps?来完成它overlaps? 。 问题是,对于这样的事情,它返回TRUE: (1..5).overlaps?(5..9) => true 如果我比较了另一个开始时的预订( 3:30 – 4:00对4:00 – 4:30 ),它会说它们确实重叠,但技术上并没有。 那会是个问题吗? ValidatesOverlap似乎处理问题,包括边缘重叠。 有什么建议?

如何通过资产管道加载css.erb文件

我希望我的样式表保持简单的css但我想使用嵌入式ruby来包含一些动态路径到图像: .home {background: #FFF url() no-repeat; } 如果我将样式表从.css更改为.css.erb,则image_path会被正确解释,但在部署到生产环境时,资产管道不会处理它。 如果我对路径进行硬编码,那么在生产或开发中都会出错,因为它们以不同的方式加载资产。 我该如何解决这个问题?

`require’:没有要加载的文件 – test_helper(LoadError)

当我在生产模式下运行我的Rails应用程序时出现以下错误,但是当我在开发模式下运行我的应用程序时它工作正常。 我可以在生产模式下使用任何gem吗? `require’: No such file to load — test_helper (LoadError) 以下是代码的完整跟踪: /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require’: No such file to load — test_helper (LoadError) from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `block in require’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in `load_dependency’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require’ from /home/nyros/Documents/Projects/DFL/Working/DFL/app/controllers/quarterly_export_statement_test.rb:1:in `’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `block in require’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:214:in `load_dependency’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:229:in `require’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:330:in `require_or_load’ from /home/nyros/.rvm/gems/ruby-2.2.0@dfl/gems/activesupport-4.0.2/lib/active_support/dependencies.rb:289:in […]

Rails模型在子文件夹和关系中

我在我自动加载的文件夹中组织了一些我的rails模型 config.autoload_paths += Dir[Rails.root.join(‘app’, ‘models’, ‘{**}’)] 我可以直接使用所有模型(例如Image.first.file_name ),但是当我尝试通过关系访问它们时,例如@housing.images.each do… with has_many: images我得到以下错误 Unable to autoload constant Housing::HousingImage, expected /path/app/models/housing/image.rb to define it 如何让rails使用我的模型进行关系方法? 我正在运行ruby 2.2和rails 4.2

Rails 4多对多关联不起作用

Ruby on rails新手在这里。 试图创建一个入门博客应用程序,并在我的模型之间的多对多关联中遇到问题。 我有2个模型 – post,类别,彼此之间有多对多关联。 我的问题:当我创建一个新post时,Post会被保存,但是类别后关联不会保存在categories_posts表中。 我的代码如下。 感谢您对此的投入。 post.rb class Post < ActiveRecord::Base validates_presence_of :title, :body, :publish_date belongs_to :user has_and_belongs_to_many :categories end category.rb class Category < ActiveRecord::Base validates_presence_of :name has_and_belongs_to_many :posts end categories_posts.rb class CategoriesPosts < ActiveRecord::Base end 迁移 – create_posts.rb class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title […]

如何降级我的rails版本?

我正在使用rails版本4.2.0。 如何降级到版本3.2.19? 我尝试了以下方法: 我打开了命令提示符。 我输入了gem uninstall rails 有些选项来自rails版本,然后我选择了当前版本并按下输入。 然后键入gem install rails -v 3.2.19以安装此版本。 我去了我的Site目录并键入rails new blog 当我打开博客应用程序的Gemfile时,我发现Rails版本4.2.0再次出现在那里。

IO :: EAGAINWaitReadable:资源暂时不可用 – 读取将阻止

当我尝试使用“socket”库中的“read_nonblock”方法时,我收到以下错误 IO::EAGAINWaitReadable: Resource temporarily unavailable – read would block 但是当我通过终端上的IRB尝试它时工作正常 如何让它读取缓冲区?

在state_machine gem上持久validation

在state_machine gem转换之前执行validation的正确语法是什么? 我试过以下, before_transition :apple => :orange do validate :validate_core end def validate_core if core.things.blank? errors.add(:core, ‘must have one thing’) end end 但我得到以下错误, undefined method `validate’ for # 我也试过写它, state :orange do validate :validate_core end 但是这会在保存记录后导致回滚,这不太理想。 我想阻止状态机转换为:orange 。 核心问题是在我的控制器中我有依赖于object.save结果的逻辑。 我对状态机的validation直到初始保存之后才开始,因此保存返回为真,控制器继续逻辑,如果对象无效,则不应该命中。 除了检查保存之外,我还通过手动测试有效性来解决这个问题,但感觉应该有一种方法可以在对象保存之前激活validation。

Heroku Rails Rake任务同步生产和本地DB

我正在尝试创建一个rake任务,这样我就可以直接输入“rake db:sync”来更新我的本地数据库以匹配生产。 此解决方案利用Heroku团队提供的代码: 使用PG备份导入和导出Heroku Postgres数据库 当我使用curl –output /tmp/latest.dump# {url}时,我的latest.dump文件中出现以下错误: AuthorizationQueryParametersErrorQuery-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.421FEFF763870123vlVr/ihmQiDgYIpdFFkuCgEP8Smvr2ks0wRkf89fJ8NfHfsBb92EVv40Q0NZuQIC 这是我正在使用的代码。 #lib/tasks/db_sync.rake namespace :db do desc ‘Pull production db to development’ task :sync => [:backup, :dump, :restore] task :backup do Bundler.with_clean_env { puts ‘Backup started…’ system “heroku pg:backups capture –app YOUR_APP_NAME” puts […]

缺少`secret_token`和`secret_key_base`用于’开发’环境,在`config / secrets.yml中设置这些值

当我尝试运行rails server命令时,我收到错误 怎么解决? 我的config / environments / development.rb Rails.application.configure do config.secret_key_base = ENV[“SECRET_KEY_BASE”] #Some stuff end 我的文件夹中没有secret.yml文件。