2, 在 views 中,通过 page/action/fragment 来缓存,可是这些缓存方法对 API json 类的请求有一定的局限性
jbuilder 可以和 Rails 的片段缓存一起使用。
#31 楼 @john1king ……
用 url 不能用 path
#16 楼 @luikore https://speakerdeck.com/m_seki/rails-is-a-follower 这个 slide 里第三页有提到《The ERB Book》但是我搜不到这本书..
#3 楼 @fresh_fish 这篇里提到的:http://www.aqee.net/php-needs-to-die-what-will-replace-it/
射手官网测试比较了下 php 和 ror 的性能,结果 php 赢得很彻底阿。
我就搜到了这篇文章,赢得很彻底。
我以前有个奇葩同事做性能测试。。。测出的结果是 7 request per second,然后发现他开的是 dev 模式,所以我搞不懂 2.4 是如何做到的?
#6 楼 @luikore 正则好强大啊。。有时候简单的case用String#encode也很方便:
[8] pry(main)> p "<>&\"".encode(:xml => :text)
"<>&\""
=> "<>&\""
[9] pry(main)> p "<>&\"".encode(:xml => :attr)[1..-2]
"<>&""
=> "<>&""
PS. 比正则要快一些噢~还能替换 crlf 什么的。
:invalid => nil # raise error on invalid byte sequence (default)
:invalid => :replace # replace invalid byte sequence
:undef => nil # raise error on undefined conversion (default)
:undef => :replace # replace undefined conversion
:replace => string # replacement string ("?" or "\uFFFD" if not specified)
:newline => :universal # decorator for converting CRLF and CR to LF
:newline => :crlf # decorator for converting LF to CRLF
:newline => :cr # decorator for converting LF to CR
:universal_newline => true # decorator for converting CRLF and CR to LF
:crlf_newline => true # decorator for converting LF to CRLF
:cr_newline => true # decorator for converting LF to CR
:xml => :text # escape as XML CharData.
:xml => :attr # escape as XML AttValue
refs: http://www.ruby-doc.org/core-2.0/String.html#method-i-encode
#26 楼 @sanivbyfish 菜鸟多不等于高手少..
什么建议?
#26 楼 @ery 把一个项目的ActiveRecord::Migrator.migrations_path
指向另一个项目的db/migrate
目录
看这里的代码,做成 engine 就会自动去加载 engine 里的 migrations。手动设置ActiveRecord::Migrator.migrations_path
估计也会起到 engine 的效果。
task :load_config do
ActiveRecord::Base.configurations = Rails.application.config.database_configuration
ActiveRecord::Migrator.migrations_paths = Rails.application.paths['db/migrate'].to_a
if defined?(ENGINE_PATH) && engine = Rails::Engine.find(ENGINE_PATH)
if engine.paths['db/migrate'].existent
ActiveRecord::Migrator.migrations_paths += engine.paths['db/migrate'].to_a
end
end
end
然后只在一个项目里加 migration 文件。
其实我最没理解的是这句话:我们希望在开发和测试阶段,两个项目都可以独立的创建数据库。
既然你说两个项目没有依赖,完全可以独立运行。难道还不能独立的创建数据库?
我理解的没有依赖应该是这样的:
project A's database.yml:
development:
database: development_A
production:
database: production_C
-
project B's database.yml:
development:
database: development_B
production:
database: production_C
然后在开发环境分别做迁移都可以正确运行。
仔细看了一下你的描述,你的这两个项目其实是有依赖的。每个单独的项目是运行不起来的,对吧?
大哥,哪里麻烦。你现在最不麻烦还能解决问题的方案是什么
jquery 那个 gem 可以升级啊
你这种情况是否可以把迁移文件做成单独的 gem,所有系统引入这个 gem。就解决所有问题了。
我以前一个公司把 asset 单独做成了一个 gem,所有其他系统引入这个 gem。应该和你的情况类似。
当然这两种我都没实践过,可以考虑试一下,建个 demo 项目~
#10 楼 @ery 我前几天看的一个 cms:
rake -T
rake refinery_authentication:install:migrations # Copy migrations from refinery_authentication to application
rake refinery_images:install:migrations # Copy migrations from refinery_images to application
rake refinery_pages:install:migrations # Copy migrations from refinery_pages to application
rake refinery_products:install:migrations # Copy migrations from refinery_products to application
rake refinery_resources:install:migrations # Copy migrations from refinery_resources to application
refinery_products 等都是这个 cms 的插件
# Specify additional Refinery CMS Extensions here (all optional):
gem 'refinerycms-i18n', '~> 2.0.0'
gem 'refinerycms-blog', '~> 2.0.0'
gem 'refinerycms-inquiries', '~> 2.0.0'
# gem 'refinerycms-search', '~> 2.0.0'
# gem 'refinerycms-page-images', '~> 2.0.0'
https://github.com/refinery/refinerycms
然后rake db:migrate:status
看哪些还没迁移就再迁移一遍。不知到你的情况和这种一样不。
#18 楼 @Tony612 http://ask.csdn.net/ 这个木有广告..