在 Rails 中,您可能希望您的环境在启动时做不同的事情,这取决于您是否正在运行 rake 任务。例如,我的用例是在应用程序启动时将数百 MB 的缓存加载到内存中。我们显然不希望这种情况发生在 rake 命令上。
---更新--- 以下是可靠的解决方案,适用于heroku。
is_rake = (ENV['RACK_ENV'].blank? || ENV['RAILS_ENV'].blank? || !("#{ENV.inspect}" =~ /worker/i).blank?)
Run Code Online (Sandbox Code Playgroud) 因此,假设您有一个用户模型,该模型设置为相当标准的API.在前端,您有一个Ember项目,该项目也具有该用户模型.正常的创建调用将类似于以下内容:
store.createRecord('user', {email: 'test@gmail.com'}).save();
Run Code Online (Sandbox Code Playgroud)
这会发送一个POST请求/api/users.但是,相当广泛的API支持是同时创建多个模型.因此,例如,代替POST调用只是在user: {email: 'test@gmail.com'}其下发送一个对象将发送一个对象数组,如users: [{email: 'test@gmail.com'}, {email: 'test2@gmail.com'}, ...].
我在ember中看到它的处理方式是在运行时只进行多次创建调用.然而,这非常低效,我想知道Ember是否支持同时保存多个模型?你会如何在Ember实现这一目标?
我正在寻找一种方法来获取 ActiveRecord 模型上所有模型属性和关联的数组。我很难找到这个问题的答案,所以,我会发布我的答案,看看是否有更好的解决方案。
我似乎无法克服heroku上面的错误.我在本地运行带有mysql2 gem的rails 3就好了,但是当移动到heroku时这似乎打破了.
首先,我使用的是ClearDB.
其次,当我部署并尝试运行时heroku run rake db:migrate,heroku告诉我需要添加mysql gem和activerecord-mysql-adapter.当我使用mysql2时,为什么会发生这种情况?
第三,当我将mysql和适配器添加到我的项目中时,我发现heroku的问题告诉我在项目中需要那些宝石.所以,我又跑rake db:migrate了,现在我得到了不同的错误......
rake aborted!
database configuration specifies nonexistent mysql adapter
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:133:in `establish_connection'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/railtie.rb:82:in `block (2 levels) in <class:Railtie>'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/lazy_load_hooks.rb:26:in `block in on_load'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/lazy_load_hooks.rb:25:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/lazy_load_hooks.rb:25:in `on_load'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/railtie.rb:74:in `block in <class:Railtie>'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `instance_exec'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `run'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:55:in `block in run_initializers'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `run_initializers'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:136:in `initialize!'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in `method_missing'
/app/config/environment.rb:5:in `<top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:103:in `require_environment!'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:297:in `block …Run Code Online (Sandbox Code Playgroud) activerecord ×1
associations ×1
attributes ×1
ember-data ×1
ember.js ×1
environment ×1
heroku ×1
mysql2 ×1
rake ×1
ruby ×1