我与所有成员一起搜索特殊群组:
控制器:
class Groups::MembersController < ApplicationController def index @group = Group.find_by_name(params[:groupname]) @search = @group.members.ransack(params[:q]) @members = @search.result().includes(:user).page(params[:page]).per(5) respond_to do |format| format.js format.html end end ...
模型:
class Member < ApplicationRecord belongs_to :user belongs_to :group end
视图:
这里放了存放.
... - puts 'Out' - @members.each do |member| - puts 'In' - user = member.user - userShow = user_path(user) .list-group-item{id: member.id} ...
输出:
Started GET "/groups/Test/members" for 127.0.0.1 at Processing by Groups::MembersController#index as HTML Parameters: {"groupname"=>"Test"} Group Load (0.0ms) SELECT "groups".* FROM "groups" WHERE "groups"."name" = ? LIMIT ? [["name","Test"],["LIMIT",1]] Rendering groups/members/index.html.haml within layouts/application Rendered layouts/nav/sidebar/_groups.html.haml (4.0ms) Out Member Load (0.0ms) SELECT "members".* FROM "members" WHERE "members"."group_id" = ? LIMIT ? OFFSET ? [["group_id",2],5],["OFFSET",0]] User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" IN (15,24,48,9,4) In Member Load (0.0ms) SELECT "members".* FROM "members" WHERE "members"."group_id" = ? LIMIT ? [["group_id",11]] In CACHE Member Load (0.0ms) SELECT "members".* FROM "members" WHERE "members"."group_id" = ? LIMIT ? [["group_id",11]] Rendered groups/members/_index_list.html.haml (7068.8ms) (0.0ms) SELECT COUNT(*) FROM "members" WHERE "members"."group_id" = ? [["group_id",2]] Rendered groups/members/index.html.haml within layouts/application (7313.5ms) Rendered layouts/_head.html.haml (274.7ms) User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id",1],1]] Rendered layouts/header/_default.html.haml (7.0ms) Rendered layouts/_nav.html.haml (2.0ms) Rendered layouts/_flash.html.haml (14.0ms) Completed 200 OK in 7965ms (Views: 7931.9ms | ActiveRecord: 1.0ms)
解决方法
我想你错了延迟的地方.使用一些时间戳检测代码并发布发生的情况:
- puts "before loop: #{Time.Now.to_s(:utc)}" - puts 'Out' - @members.each do |member| - puts "In loop #{Time.Now.to_s(:utc)}" - user = member.user - puts "after member.user call #{Time.Now.to_s(:utc)}" - userShow = user_path(user) .list-group-item{id: member.id} - puts "End loop #{Time.Now.to_s(:utc)}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。