Ruby on rails 如何根据重量分配访客

Ruby on rails 如何根据重量分配访客,ruby-on-rails,ruby,ruby-on-rails-4,model,Ruby On Rails,Ruby,Ruby On Rails 4,Model,在我的应用程序中,我有模型Post和Image&我对图像使用嵌套的_属性 class Post < ActiveRecord::Base has_many :images accepts_nested_attributes_for :images, reject_if: :all_blank, allow_destroy: true class Image < ActiveRecord::Base belongs_to :post, :counter_cache =&g

在我的应用程序中,我有模型
Post
Image
&我对
图像使用
嵌套的_属性

class Post < ActiveRecord::Base
  has_many :images
  accepts_nested_attributes_for :images, reject_if: :all_blank, allow_destroy: true

class Image < ActiveRecord::Base
  belongs_to :post, :counter_cache => true
这很好,但我要寻找的是根据我添加到每个图像中的
权重
分配访问者

默认的
权重
可以是10。例如,我在那篇文章上有6张图片&
权重是:

Image 1 => weight 10
Image 2 => weight 20
Image 3 => weight 50
Image 4 => weight 30
Image 5 => weight 60
Image 6 => weight 10
我想要实现的是,根据
图像权重
将访问者分配到每个图像,这样
图像5
将获得大部分访问者,但我们仍然将访问者发送到
图像1
&其他图像


我还没有在
图像中添加
权重
,因此可以将其更改为任何需要的内容。

我使用了这个
gem
:。我做了一些测试,效果很好

唯一重要的是,您的
数组
,必须看起来像一个
散列

{'object-1' => weight, 'object-2' => weight, 'object-3' => weight, 'object-4' => weight}
我的代码:


我用了这个
gem
:。我做了一些测试,效果很好

唯一重要的是,您的
数组
,必须看起来像一个
散列

{'object-1' => weight, 'object-2' => weight, 'object-3' => weight, 'object-4' => weight}
我的代码:

看这里:有多种解决方案,取决于性能需求看这里:有多种解决方案,取决于性能需求
suits = @post.images.pluck(:id, :weight).to_h