javascript - 导轨 | 我只想显示一些文章
问题描述
我有 2 个表:-user_activity:包含 ID 活动和 ID 用户 -activity:包含 Id、Id 用户等...
我只想显示 2 个表格中的活动
有我的代码: -activities 包含用户的所有活动 -usersactivities_id 在一个选项卡中包含用户的所有 user_activity(例如:10、2、3)
def fetch_maj_activities
user = current_user
activities = []
user.groups.each do |group|
activities << Activity.where(group: group)
end
usersactivities_id = current_user.user_activities.select('activity_id').map(&:activity_id).uniq
activities.each do |activity|
if usersactivities_id.include? activity.id
else
activities = activities.flatten.reject {|a| a.id == activity.id}
end
end
@all_activities = activities.flatten.sort_by(&:updated_at).reverse
respond_to do |format|
format.js
end
end
日志 :
CACHE Activity Load (0.0ms) SELECT "activities".* FROM "activities" WHERE "activities"."group_id" = $1 LIMIT $2 [["group_id", 1], ["LIMIT", 11]]
↳ /home/benjamin/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0.rc1/lib/active_record/log_subscriber.rb:98
NoMethodError (undefined method `id' for #<ActiveRecord::Relation []>
Did you mean? ids):
app/controllers/activities_controller.rb:65:in `block in fetch_maj_activities'
app/controllers/activities_controller.rb:64:in `each'
app/controllers/activities_controller.rb:64:in `fetch_maj_activities'
解决方案
有答案,为我工作:)
def fetch_maj_activities
user = current_user
activities = []
usersactivities_id = current_user.user_activities.select('activity_id').map(&:activity_id).uniq
user.groups.each do |group|
activities << Activity.where(group: group)
end
usersactivities_id.each do |useractid|
activities.flatten.each do |act|
if act.id == useractid
activities = activities.reject {|a|a}
end
end
end
@all_activities = activities.flatten.sort_by(&:updated_at).reverse
respond_to do |format|
format.js {render :action => "fetch_activities"}
end
end
推荐阅读
- node.js - node.js multer Route.post() 回调
- r - 在变量中使用字符串来创建新的变量名
- c# - 从另一个窗口中的按钮命令更改文本框的 IsEnabled 属性不起作用?
- javascript - 如何使用 Ajax 将数组值从 Javascript 格式化为 Java Servlet
- java - servlet请求setAttibute和getParameter java的问题
- c# - 如果使用while循环,有没有办法从内存中“强制删除”一个实例?
- java - 不兼容的类型:void 不能转换为 List
- reactjs - 使用 react 和 express(nginx、docker)建立 web-socket 通信
- json - Swift JSON 序列化类型不匹配
- python - 将 python 连接到 Web 和验证用户输入的基础知识