所以如果我有一个代码(对于sqlite3)
data = Items.where(pubshIEd: is_pubshIEd).order("RANDOM()").limit(count)
如何确保它可以与不同的数据库一起使用?
解决方法 Rails不支持开箱即用.我相信我通过模型扩展实现了这一点(我不再使用它,因为我强制使用Postgresql),但这样的东西可以工作:module Randomize extend ActiveSupport::Concern included do scope :random,-> { order(rand_cmd) } end module ClassMethods def rand_cmd if connection.adapter_name =~ /MysqL/i 'rand()' else 'random()' end end endend
然后你可以做
class Item include RandomizeendItem.where(...).random.limit(...)总结
以上是内存溢出为你收集整理的ruby-on-rails – 在RoR中随机选择不同的数据库全部内容,希望文章能够帮你解决ruby-on-rails – 在RoR中随机选择不同的数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)