ruby-on-rails - rails activerecord交换数据

标签 ruby-on-rails ruby activerecord

我需要将 1 个产品放在列表的顶部。我试过了:

  @allProd = Product.where(service_id:params[:id], product_category_id:descenId).order(rating: :desc).paginate(:page => params[:page], :per_page => 8)
  tmp = @allProd[0]
  indx = @allProd.find_index(Product.find(prodId))
  @allProd[0] = @allProd[indx]
  @allProd[indx] = tmp   

但是数据数组没有改变。执行此操作的最佳方法是什么?

更新: 最终解决方案是

 @allProd = Product.where(service_id:params[:id], product_category_id:descenId).order(rating: :desc).paginate(:page => params[:page], :per_page => 8).to_a
   @allProd.delete(Product.find(prodId))
   @allProd = @allProd.unshift(Product.find(prodId))

但请记住,如果转移的产品不在第一页,您将遇到分页产品数量的问题。但对我来说,没关系)

最佳答案

我不是 100% 确定这就是您要实现的目标,但可以尝试

@allProd = Product.where(service_id:params[:id], product_category_id:descenId).order(rating: :desc).paginate(:page => params[:page], :per_page => 8).to_a.unshift(Product.find(prodId))

我假设在每个页面上,id 为 prodId 的 Product 将是第一个。

关于ruby-on-rails - rails activerecord交换数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827159/

相关文章:

javascript - 通过表单保存模型后重新渲染 Rails 部分

mysql - 如何验证 mysql 数据库 URI

ruby-on-rails - Rails 4.0 未定义方法 `+' 为 nil :NilClass

ruby - 如何使用 ruby​​ 将多个图像组合成一个 PDF?

ruby-on-rails - Elasticsearch不索引数据库中名为 “type”的字段

ruby-on-rails - 我怎样才能简单地将一个散列合并到一个新的散列中?

ruby-on-rails - Rails 添加了新的设计 View

ruby-on-rails - Rails 4 中的非事件记录模型结构

ruby-on-rails - activerecord-2.3.14 与 ruby​​ 1.9.2::undefined 方法 `reject' 中断 "4":String

sql - ActiveRecord::Relation join,如何将连接表的一列添加到新名称的查询结果中?