Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从按共享列排序的多个表中获取记录_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 从按共享列排序的多个表中获取记录

Ruby on rails 从按共享列排序的多个表中获取记录,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,我是rails新手,不知道如何做这个简单的操作: 我有 class Section < ActiveRecord::Base has_many :articles has_many :questions end class Article < ActiveRecord::Base belongs_to :section end class Question < ActiveRecord::Base belongs_to :section end 我

我是rails新手,不知道如何做这个简单的操作:

我有

class Section < ActiveRecord::Base
   has_many :articles
   has_many :questions
end

class Article < ActiveRecord::Base
   belongs_to :section
end

class Question < ActiveRecord::Base
   belongs_to :section
end
我想把所有的文章和问题都放在某一部分,但要按照共享栏“updated_at”进行分类


我尝试包含并连接它们,但未能将它们一起排序。

一旦结果出现在单个数组中,您可以执行以下操作:


@sorted=@records.sort_by&:updated_位于

开始查找您希望使用的节。例如,在本例中,您可以通过ID 12找到特定的节:

section = Section.find(12)
然后,您可以访问属于该部分的文章和问题,并将结果与+运算符组合:

articles_and_questions = section.articles + section.questions
articles_和_questions变量的类型为。因为section.articles和section.questions的@targets都是对象数组,所以可以从类中调用有关articles_和_问题的任何方法。在这种情况下,您可以使用来自阵列中包含的模块的:


如果您想知道为什么在&:updated_at中有一个与,请阅读。

一旦您将它们从数据库中组合到一个数组中,您可以使用更新的_at对数组进行排序,或者您可以使用group by按日期分组,具体取决于您计划如何显示数组。感谢您的帮助,但是,当我将文章和问题加在一起时,我仍然有一个问题,我如何知道哪些是文章或问题并访问它们,我尝试过这样做-@sorted|u posts.each | post | then=post.title他们有一个公共列标题,但它给出了一个错误:undefined method!我通过在每个名为type的模型中定义一个方法来解决这个问题,该方法返回表的名称,然后在类型上设置条件,以了解post-im处理的是哪种类型。。我不知道这是否是最佳解决方案。我很高兴这有帮助!恐怕我无法重现你的问题。我可以在rails控制台中执行类似@sorted|u posts.each do|post | put@sorted|u posts.title end的操作。如果您确实需要找出每个帖子的类型,可以使用Ruby的实例_?方法@sorted_posts.first.instance_of?问题
sorted_articles_and_questions = articles_and_questions.sort_by &:updated_at