У меня есть вопрос о случайных записях в Rails 3.
У меня есть две модели:
class Product < ActiveRecord::Base
belongs_to :category
self.random
Product.find :first, :offset => ( Product.count * ActiveSupport::SecureRandom.random_number ).to_i
end
end
class Category < ActiveRecord::Base
has_many :products
end
Я могу получить случайный продукт во всех продуктах, используя случайное смещение каста для int. Но я хочу также иметь возможность получать случайные продукты в нескольких категориях. Я пробовал что-то подобное, но это не работает из-за индекса смещения:
class Product < ActiveRecord::Base
belongs_to :category
self.random cat=["Mac", "Windows"]
joins(:categories).where(:categories => { :name => cat }).where(:first, :offset => ( Product.count * ActiveSupport::SecureRandom.random_number ).to_i)
end
end
Кто-нибудь здесь, кто знает лучшее решение?
ТНХ!
пингвин