我几乎尝试过所有东西,但似乎不可能从模型中使用expire_fragment?我知道你不应该而且它不是非MVC,但肯定有很多方法可以做到.
我在lib/cache_helper.rb中创建了一个带有所有过期助手的模块,每个模块都只是一堆expire_fragment调用.我在/ app/sweepers下设置了所有缓存清理器,并在我的应用程序控制器中有一个"include CacheHelper",因此当通过控制器调用时,应用程序中的缓存可以正常工作.
然后事情是我有一些外部守护进程,特别是一些重复的cron任务,它们调用一个调用某种方法的rake任务.此方法执行一些处理并将条目输入到模型中,之后我需要使缓存过期.
这是最好的方法,因为我无法在模型中指定缓存清理程序.直观的观察者似乎是最好的解决方案,但后来它抱怨expire_fragment未定义等等,我甚至尝试将ActionController缓存类包含在观察者中,但这不起作用.我喜欢有关如何为此创建解决方案的一些想法.谢谢.
我正在开始一个MongoDB项目,只是为了解决问题,并且有机会学习MongoDB/NoSQL模式.它将是一个实时聊天应用程序,堆栈包括:Rails 3,Ruby 1.9.2,Devise,Mongoid/MongoDB,CarrierWave,Redis,JQuery.
我将分别处理实时聊天轮询/消息排队.不确定Node.js,APE或自定义EventMachine应用程序.但是对于Mongo,我正在考虑将它用于应用程序中的其他所有内容,特别是聊天日志和历史记录.
我的问题是如何最好地设计模式,因为我以前的经验都是使用MySQL和关系数据库模式.作为一个子问题,我们何时最好将嵌入式文档与相关文档进行对比.
该应用程序将具有:
鉴于Mongo(至少我上次检查过)的文件限制为4MB,我不认为有一个房间集合和存储所有房间聊天,因为嵌入式文档会很好.
从我到目前为止的想法,我想做的事情如下:
我主要担心的是,在最终看起来像一个关系模式并且我打败了目的之前,我还能走多远?肯定有比嵌入更多的相关内容.
另一个问题是,引用相关文档要比访问我所听到的嵌入式文档慢得多.
我想制作通用查询,例如:
有关如何以可扩展的方式有效地构建模式的任何建议?感谢大家.
我正在尝试在Rails中制作图表,例如在给定日期范围内每天的平均销售额
假设我有一个product_sold模型,它具有"sales_price"浮点属性.但是如果特定日期没有销售(例如模型/ db中没有),我想简单地返回0.
MySQL/Rails完成这项工作的最佳方法是什么?我知道我可以这样做:
(这个SQL查询可能是完全错误的方式来获得我想要的东西)
SELECT avg(sales_price) AS avg, DATE_FORMAT(created_at, '%m-%d-%Y') AS date
FROM products_sold WHERE merchant_id = 1 GROUP BY date;
Run Code Online (Sandbox Code Playgroud)
得到这样的结果:
| avg | date | 23 01-03-2009 50 01-05-2009 34 01-07-2009 ... ...
我想得到的是:
| avg | date | 23 01-03-2009 0 01-04-2009 50 01-05-2009 0 01-06-2009 34 01-07-2009 0 01-08-2009 ... ...
我可以使用SQL执行此操作,还是必须对结果进行后处理以查找日期范围中的哪些日期不在SQL结果集中?也许我需要一些子选择或IF语句?
感谢大家的帮助.