以下哪种异常通知解决方案最好?
我想使用Rake任务来缓存我的站点地图,以便请求sitemap.xml不会永远.这是我到目前为止所拥有的:
@posts = Post.all
sitemap = render_to_string :template => 'sitemap/sitemap', :locals => {:posts => @posts}, :layout => false
Rails.cache.write('sitemap', sitemap)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行它时,我收到一个错误:
undefined local variable or method `headers' for #<Object:0x100177298>
Run Code Online (Sandbox Code Playgroud)
如何从Rake中将模板渲染为字符串?
Javascript:好零件是一本好书.我经常发现自己从语言设计师的角度阅读以下段落:
undefined而NaN不是常数.它们是全局变量,您可以更改它们的值.这应该是不可能的,但事实确实如此.不要这样做.
小贴士:
undefined我的Javascript代码中的值.undefined不可变.另一个更微妙的例子是" for in不应该枚举原型属性".
我想要一本关于特定语言背景下的语言设计问题的书.
如果您正在尝试设计"完美"的OO语言,您会阅读哪些书籍作为指导?
这篇flickr博客文章讨论了他们对人物选择器自动完成的最新改进背后的想法.
他们必须克服的一个问题是如何解析和处理客户端这么多数据(即所有联系人).他们尝试通过AJAX获取XML和JSON,但发现它太慢了.然后他们说这是通过动态生成的脚本标记(带回调函数)加载数据:
JSON和动态脚本标记:快速但不安全
使用大字符串操作是最后一种方法的问题的理论,我们从使用Ajax转而使用动态生成的脚本标记来获取数据.这意味着联系人数据从未被视为字符串,而是在下载后立即执行,就像任何其他JavaScript文件一样.性能差异令人震惊:解决10,000个联系人的时间为89毫秒(减少了3个数量级),而172个联系人的最小情况只需要6毫秒.每个联系人的解析时间实际上减少了,列表变得越大.这种方法看起来很完美,除了一件事:为了执行这个JSON,我们必须将它包装在一个回调方法中.由于它是可执行代码,世界上任何网站都可以使用相同的方法下载Flickr成员的联系人列表.这是一个交易破坏者.(强调我的)
有人可以在这里考虑确切的安全风险(可能有样本利用)?如何通过脚本标记中的"src"属性加载给定文件,而不是通过AJAX调用加载该文件?
通过传统形式输入我的地址让我发疯:
替代文字http://img10.imageshack.us/img10/7404/traditionaladdressform.png
因为我发现这个过程如此令人厌恶,当我设计我的在线商店(bombsheets.com)时,我决定为地址构建一个自动完成的小部件.在您输入时,我们会尝试对您的地址进行地理编码(通过Google地图):
alt text http://img403.imageshack.us/img403/9333/addressautocomplete.png
在最好的情况下,这非常有效.如果您的地址是"120 W 45th St,New York,NY 10036,USA",您可以输入短至"120 w 45th st,nyc"的内容输入.
但是,据我所知,我们是唯一使用此界面的在线商店.我很好奇它是否缺乏使用意味着这个想法在某种程度上是有缺陷的.一些潜在的问题:
无论如何,基本上我很好奇这是否是我应该尝试创新的领域,或者我是否应该使用传统方法.(关于改进这种新方法的可用性的想法当然也受到赞赏).
javascript autocomplete ruby-on-rails e-commerce street-address
我被告知这样做:
config.gem 'tzinfo'
Run Code Online (Sandbox Code Playgroud)
不排除需要require 'tzinfo'.所有宝石都是如此吗?如果是的话,添加到底是config.gem WHATEVER做什么的?
这是我目前编辑CSS的工作流程:
h2.post_title或其他东西)中找到合适的CSS语句我想避免第6步.也就是说,我希望能够通过类似Firebug的UI编辑CSS,并能够立即将更改提交到相关文件(而不是像Firebug那样手工复制它们)
编辑:在Mac上运行的东西是理想的
我正在我的说唱歌词解释网站Rap Genius上实现类似Stackoverflow的声誉系统:
我的问题是如何实现这一点.具体来说,我正在尝试决定是否应该创建一个表reputation_events来帮助重新计算声誉,或者我是否应该在需要时从头开始重新计算.
该表reputation_events将包含以下列:
每当发生影响声誉的事情时,我都会插入相应的行reputation_events.这使得重新计算声誉和生成人类可读的事件序列变得容易,这些事件产生了给定人的声誉.
另一方面,任何给定的操作都可能影响多个用户的声誉.例如,假设用户A在给定歌曲上超过用户B; 基于"对歌曲有最多解释"的目标,我必须记住删除B的原始"has_the_most_explanations"事件(或者我可能会为B添加一个新事件?)
我想缓存一个Post视图,但视图取决于当前用户的权限(例如,我只显示"编辑"链接current_user.can?(:edit, @post))
所以我希望我的缓存键包含当前用户的CanCan功能的表示,这样当用户的能力改变时我可以使缓存无效
那么:我怎样才能得到一个表示当前用户能力的字符串,以便2个具有相同能力的不同用户生成相同的"能力字符串"?
我已经尝试过user.ability.inspect,但是对于具有相同能力的不同用户,这不会产生相同的字符串