Tag: 将分页

Rails有很多条件

c = “(f.profile_id = #{self.id} OR f.friend_id = #{self.id})” c += AND + “(CASE WHEN f.profile_id=#{self.id} THEN f.friend_id ELSE f.profile_id END = p.id)” c += AND + “(CASE WHEN f.profile_id=#{self.id} THEN f.profile_rejected ELSE f.friend_rejected END = 1)” c += AND + “(p.banned = 0)” 我需要在has_many关系中使用它,如下所示: has_many :removed_friends, :conditions => ??? 我如何在那里设置self.id?或​​者我如何在那里传递id? 然后我想使用will_paginate插件: @profile.removed_friends.paginate(:page => 1, […]

Rails 5:NoMethod错误 – 未定义的方法Paginate

我有一个基于Rails 5的JSON API。我有一个方法可以为一个特定的公司提供所有产品的列表,我想分页,以便不会立即显示所有数据。 为此,我遇到了两个gem,即will_paginate和api-pagination 。 运行bundle install并重新启动服务器后,我仍然收到以下错误: NoMethodError (undefined method `paginate’ for #) 产品控制器: require ‘roo’ class Api::V1::ProductsController comp_id, :category_id => cat_id) else product = Product.where(:company_id => comp_id) end paginate json: product, status: 200 else render json: { errors: “Company ID is NULL” }, status: 422 end end end Gemfile.rb source ‘https://rubygems.org’ git_source(:github) do |repo_name| […]

使用will-paginate按排名算法排序

我正在使用Ruby on Rails创建一个类似digg的站点,对项目进行排名(基于此算法 )。 我正在使用will-paginate gem列表中的项目。 问题是,will-paginate只允许我根据表数据插入’:order =>’。 我想将will-paginate按一个数字排序,该数字是使用基于表格上不同字段的函数计算的(例如,投票数,年龄)。 我怎样才能做到这一点?

Rails will_paginate在HABTM模型上显示重复项

我正在使用will_paginate与博客post和标签之间的HABTM关系。 每当我应用分页时,我都会显示重复的post,因为Rails中的HABTM不会保持数据库的唯一性,它会在进行查询时应用唯一性。 blog_posts.rb has_and_belongs_to_many :tags, :uniq => true tag.rb has_and_belongs_to_many :blog_posts, :uniq => true 根据ActiveRecord的文档 ,:uniq不会阻止存储重复的关系,它只是在构建查询时忽略它们。 这是问题: tag = Tag.find(1) tag.blog_posts.count等于1,但是: tag.blog_posts.page(nil).count等于3,并且所有3都是同一post的重复。 正确的行为应该只显示1,而不是重复。 我知道我可以复制这里生成的SQL查询并以这种方式修复它,但这似乎不是一个好的解决方案。 有人可以帮我解决潜在的问题吗? (虽然我担心这是will_paginate中的一个错误) 编辑:这似乎也是Kaminari的一个问题。

在rails中使用lambda

我有一个方法,可以执行分页查找调用,如… 1 coll = paginate(:all, lambda {{:conditions => [‘status = ? AND expires Constants::POST_FIELDS, :order => ‘posts.ratings DESC’, :include => [{:poster => :poster_friends}, :category], :per_page => Constants::LISTINGS_PER_PAGE, :page => page) 当此调用运行时,它只是忽略生成的查询中的条件。 2 如果我在named_scope中尝试它,我会得到一个错误,如… named_scope :featured_all, lambda {{:conditions => [‘status = ? AND expires ‘posts.ratings DESC’, :include => [{:poster => :poster_friends}, :category], :select => Constants::POST_FIELDS}} 命名范围错误: […]

will_paginate没有在网上显示……

前面的问题是: 限制RoR结果的常见做法是什么? 这是users_controller: def show @user = User.find(params[:id]) @posts = @user.posts.paginate :page => params[:page] respond_to do |format| format.html # show.html.erb format.xml { render :xml => @user } end end 和我的show.html.erb: 但在浏览器中,我只能得到这个: 4 [#, #, #, #] 除此之外,我没有看到任何其他东西。 我试图用控制台解决问题: >> defined? WillPaginate => “constant” >> [].paginate => [] >> ActiveRecord::Base.respond_to? :paginate => true

如何使用Kaminari(或will_paginate)gem对数组的散列进行分页

我现在设法找到了解决方法。 索引操作现在在调用页面之前有一个“order”子句,然后根据日期对膳食进行排序和分组。 hackey位下一步:@total_pages和@pages在视图中用于提供分页链接,因为内置帮助程序不能与@meals返回的Hash of arrays一起使用。 它有用(有点),但它是hackey。 将视图内容移动到帮助程序肯定有助于清理它,这是我的下一步。 def index @meals = Meal.order(‘date DESC’).page(params[:page]).text_search(params[:query]).sort_by(&:date).reverse.group_by(&:date) @total_pages = (Meal.all.size / 7.to_f).ceil @pages = (1..@total_pages).to_a respond_to do |format| format.html # index.html.erb format.json { render json: @meals } end 结束 我真的需要帮助 – 这让我疯了几天。 我试图分页数组的哈希。 我已经尝试过will_paginate和Kaminari,但找不到分页结果哈希的方法。 我正在运行Rails 3.2.6,Ruby 1.9.3和PostgreSQL 9.1.3正在进行搜索…… 在我的控制器(并使用Kaminari)我有: def index @meals = Meal.text_search(params[:query]).sort_by(&:date).reverse.group_by(&:date).page(params[:page]) respond_to do |format| format.html # […]

将Paginate:限制结果数量

我使用will paginate gem为ruby。 我正在使用paginate来获取一群人并在一个字段上排序。 我想要的只是前100个。 基本上是顶级人物。 我看不到这样做。 我该怎么办呢? 谢谢

使用will_paginate通过随机列出的博客文章进行分页

我希望用户能够以随机顺序浏览我的博客post。 我无法像这样实现它: @posts = Post.paginate :page => params[:page], :order => ‘RANDOM()’ 因为:order参数是在每个查询中调用的,因此我冒着重复博客post的风险。 最好的方法是什么?

will_paginate -error-undefined method`total_pages’

我正在使用will_paginate“2.3.15”作为我的rails应用程序 在我的units_controller.rb中 def index @units = Unit.paginate(:all ,:page => params[:page], :order => ‘created_at DESC’) end in my views(index) but it gives error undefined method `total_pages’ for # 我的rails版本3.0.0和ruby版本1.8.7 请帮助