如何在模型中进行迭代,然后在视图中再次进行迭代?

用户5454504

我想为每个用户提取数据。person_id从用户表中获取他们,然后使用每个人的ID来确定每个人有多少天,并在我的视图中显示出来。我不确定是否正确执行此操作,因为我先在控制器中进行迭代,然后在视图中再次进行迭代。

def how_many_days_users_have

 @my_group = User.all.pluck(:person_id)
 @my_group.each do |v|

   @indirect_id_v = Empaccrl.where("person_id = ? and is_active = ?", '#{v]', 'Y').pluck(:a_code).first
   @v_range = Empaccrl.where("person_id = ? and is_active = ?", '#{v]', 'Y').pluck(:ac).first
   @v_range_taken = Empaccrl.where("person_id = ? and is_active = ?", '#{v]', 'Y').pluck(:taken).first
   @total_v_hours = @v_range.to_d - @v_range_taken.to_d
   @total_v_days = @total_v_hours / 8

 end

然后在我看来,我用它来显示以下数据:

  %tr.trace-table
  -@indirect_id_v.each do |idd|
    %tr.trace-table
      %td.trace-table{:style => 'border: solid black;'}= idd



  -@total_v_days.each do |days|
    %tr.trace-table
      %td.trace-table{:style => 'border: solid black;'}= days
巴塞尔·萨曼(Bassel Samman)

好的,首先,将一些垃圾移到您的模型中,如下所示:

class Empaccrl < ActiveRecord::Base

  def self.all_people
    where(person_id: User.all.pluck(:person_id))
  end

  def self.active_people
    all_people.where(is_active: 'Y')
  end

  def self.active_vacation_data
    active_people.select(:person_id, :ac, :taken)
  end 

  def total_v_hours
    ac.to_d - taken.to_d
  end

  def total_v_days
    total_v_hours / 8
  end
end

然后,您可以使用:

peoples_vacation_information = Empaccrl.active_vacation_data.all 
peoples_vacation_information.map do |person| 
  p "person #{person.person_id} has #{person.total_v_days} vacation days"
end

老实说,您甚至不需要所有这些,但是我不确定您为什么要做自己正在做的事情,因此我认为最好是安全的并添加一些东西。无论您不需要什么,只需忽略。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中进行迭代?

来自分类Dev

如何在玉器中进行嵌套迭代?

来自分类Dev

如何在R中进行迭代?

来自分类Dev

如何在Python中进行迭代?

来自分类Dev

如何在$ scope中进行迭代

来自分类Dev

如何从列表视图中删除项目而不进行迭代

来自分类Dev

如何在春季视图中在链表的地图上进行迭代

来自分类Dev

如何在bash环境变量列表中进行迭代?

来自分类Dev

如何在OpenCV4Android中进行迭代

来自分类Dev

如何在Antlr的Python访问者中进行迭代

来自分类Dev

如何在厨师 elb 模板中进行迭代

来自分类Dev

Rails:如何在不同的视图中进行小的更改

来自分类Dev

如何在MVC Razor视图中进行AJAX调用?

来自分类Dev

如何在SwiftUI视图中进行导航控制

来自分类Dev

Rails:如何在不同的视图中进行小的更改

来自分类Dev

如何在视图模型中进行命中测试?

来自分类Dev

如何在Flask Admin中的“多对多”关系中的模型视图中进行自定义查询?

来自分类Dev

在Python中,如何在一个迭代器上进行迭代,然后在另一个迭代器上进行迭代?

来自分类Dev

Django:在视图中为模板设置多个列表以进行迭代

来自分类Dev

如何从控制器访问模型数据以在Ember的视图中进行渲染?

来自分类Dev

如何从控制器访问模型数据以在Ember的视图中进行渲染?

来自分类Dev

如何在有反应的嵌套儿童中进行迭代?

来自分类Dev

如何在从表单发布结果的对象中进行迭代并仅获取具有值的元素?

来自分类Dev

如何在熊猫数据框中使用已知索引在特定行中进行迭代?

来自分类Dev

使用c#的webdriver-如何在选项下拉菜单中进行迭代?

来自分类Dev

如何在ng-repeat中进行动态范围迭代

来自分类Dev

如何在ng-class中进行迭代编号/计数器

来自分类常见问题

在itertools中进行特定次数的迭代后如何中断循环?

来自分类Dev

如何像bash一样在JavaScript中进行迭代?

Related 相关文章

  1. 1

    如何在Python中进行迭代?

  2. 2

    如何在玉器中进行嵌套迭代?

  3. 3

    如何在R中进行迭代?

  4. 4

    如何在Python中进行迭代?

  5. 5

    如何在$ scope中进行迭代

  6. 6

    如何从列表视图中删除项目而不进行迭代

  7. 7

    如何在春季视图中在链表的地图上进行迭代

  8. 8

    如何在bash环境变量列表中进行迭代?

  9. 9

    如何在OpenCV4Android中进行迭代

  10. 10

    如何在Antlr的Python访问者中进行迭代

  11. 11

    如何在厨师 elb 模板中进行迭代

  12. 12

    Rails:如何在不同的视图中进行小的更改

  13. 13

    如何在MVC Razor视图中进行AJAX调用?

  14. 14

    如何在SwiftUI视图中进行导航控制

  15. 15

    Rails:如何在不同的视图中进行小的更改

  16. 16

    如何在视图模型中进行命中测试?

  17. 17

    如何在Flask Admin中的“多对多”关系中的模型视图中进行自定义查询?

  18. 18

    在Python中,如何在一个迭代器上进行迭代,然后在另一个迭代器上进行迭代?

  19. 19

    Django:在视图中为模板设置多个列表以进行迭代

  20. 20

    如何从控制器访问模型数据以在Ember的视图中进行渲染?

  21. 21

    如何从控制器访问模型数据以在Ember的视图中进行渲染?

  22. 22

    如何在有反应的嵌套儿童中进行迭代?

  23. 23

    如何在从表单发布结果的对象中进行迭代并仅获取具有值的元素?

  24. 24

    如何在熊猫数据框中使用已知索引在特定行中进行迭代?

  25. 25

    使用c#的webdriver-如何在选项下拉菜单中进行迭代?

  26. 26

    如何在ng-repeat中进行动态范围迭代

  27. 27

    如何在ng-class中进行迭代编号/计数器

  28. 28

    在itertools中进行特定次数的迭代后如何中断循环?

  29. 29

    如何像bash一样在JavaScript中进行迭代?

热门标签

归档