这么有意思的话题,应该加精鼓励!
顺便贴一下我的解决方法
之前没搞定是因为收藏的 topic_id 是放在 User 的一个 Array 字段里面
class User
include Mongoid::Document
field :favorite_topic_ids, type: Array
end
每次查询的时候是用 Topic.where(:_id.in => current_user.favorite_topic_ids).paginate
来取的,由于有分页所以不好基于数组的顺序排序。
今天想了想,其实 will_paginate 是可以直接分页 Array 类型的,于是改成了这样:
@topic_ids = @user.favorite_topic_ids.reverse.paginate(:page => params[:page], :per_page => 30)
@topics = Topic.where(:_id.in => @topic_ids)
@topics = @topics.to_a.sort do |a, b|
@topic_ids.index(a.id) <=> @topic_ids.index(b.id)
end
哦,我看错了,我看成收藏功能能否放到前面了... 是可以的,现在是 Bug
Why?
重点是 response 头里面的 context-type
cap 是针对复杂的部署场景而设计的,比如多个服务器,许多复杂的配置…
如果你的环境简单,可以不用的,两年前我基本上是 git pull 过去的
rvm autolibs rvm_pkg
rvm install 2.1.1
直接 rvm autolibs rvm_pkg
RVM 将自动处理 libyaml、readline 之类的库安装的问题
https://github.com/TechEmpower/FrameworkBenchmarks/pull/847 给他提交了 Pull Request, Rails 4.1.0, Ruby 2.1.1
目前是 Ruby 2.0.0-p0 , Rails 3.2.13
请楼主再次打开你的通知界面,以便能抓取到异常
:thumbsup:
Rails 的 App Server 可以无限水平扩展的,简单来说是这样:
Nginx
|
|------------------------------|---------------------------|
| | |
________________Server 0______________ ______Server 1______ _Server N_
| | | |
| [app0] [app1] [app2] [app3] [app4] | | [app0]..[appN] |
______________________________________ ____________________
等你遇到这类场景的时候,你就知道怎么查资料了,现在是空谈,没意义
用 exception_notification 可以将异常写入到你的数据库里面,我们现在的项目就是这么做的。
lib/exception_notifier/database_notifier.rb
# coding: utf-8
# 异常通知
module ExceptionNotifier
class DatabaseNotifier
def initialize(options)
# do something with the options...
end
def call(exception, options={})
# send the notification
@title = exception.message
messages = []
messages << exception.inspect
if !exception.backtrace.blank?
messages << "\n"
messages << exception.backtrace[0,100]
end
if Rails.env.production?
ExceptionLog.create(title: @title, body: messages.join("\n"))
else
puts "\n======================"
puts messages.join("\n")
puts "======================\n"
end
end
end
end
config/initializes/exception_notification.rb
require 'exception_notification/rails'
require 'exception_notification/sidekiq'
require "exception_notifier/database_notifier"
ExceptionNotification.configure do |config|
config.ignored_exceptions += %w{ActionView::TemplateError}
config.add_notifier :database, {}
end
我们开发 database.yml 都不 ignore 的,统一到一个公共机器,test 环境是在各自的本机
不喜欢这些,一直 ERB 不过话说回来,为何 SCSS 和 CoffeeScript 我能接受呢?!
那个两年前的帖子你有看完么?
缺少联系方式,工作地点没写,请参考招聘节点的要求修改,然后 @ 我