Closed destinyd closed 9 years ago
如题,可知排序主要针对两个数据进行:
由于mongoid的id非数字,我考虑取用户的创建时间(基本不可能相同,如果真相同也无所谓)
user_ord = user.created_at.to_i
议题选项由于初始题目创建时间相同,所以使用自动生成随机数作为持久默认值
field :ord, type: Integer, default: -> { rand(1000) }
由于选项一般不会太多(不超过20) 在控制层获取所有选项后,通过sort根据不同用户排序,然后输出即可
user_ord = current_user.created_at.to_i % 43 @vote_items = @vote.vote_items.sort{|x,y| (x.ord % user_ord) <=> (y.ord % user_ord)}
具体使用方法:
@vote = Vote.find params[:id] @vote_items = Vote.vote_items_rand_order_by_user @vote.id, current_user
已集成到 0.2
如题,可知排序主要针对两个数据进行:
由于mongoid的id非数字,我考虑取用户的创建时间(基本不可能相同,如果真相同也无所谓)
议题选项由于初始题目创建时间相同,所以使用自动生成随机数作为持久默认值
由于选项一般不会太多(不超过20) 在控制层获取所有选项后,通过sort根据不同用户排序,然后输出即可
具体使用方法: