【问题标题】:Rails don't show API object if it matches database object如果 API 对象与数据库对象匹配,Rails 不会显示它
【发布时间】:2023-03-19 11:41:01
【问题描述】:

我的应用使用来自 Meetup.com 的 API 拉入组对象。这些对象不会进入我的数据库。然后,用户可以将一个组添加到他们的个人资料中,此时它会进入我的数据库。

当用户重新登录我的网站时,我不想向他们显示他们已经添加到他们的个人资料中的来自 Meetup.com 的组对象。这里的共享密钥是 meetup.com 对象有一个“组.id” 匹配我的数据库“组”模型的“group_id”

如果 API 中的组是数据库对象,我想我可以这样做:

@groups = RMeetup::Client.fetch(:groups, :lat => @user.latitude, :lon => @user.longitude)
@justnewgroups = @groups.where("id NOT IN (?)", current_user.groups.pluck(:group_id)

但是如果不使用 where 我不知道该怎么做。在视图中可能是这样的?:

<% @groups.each do |group| %>
   <% unless group.id == current_user.groups.pluck(:group_id) %>
     <%= render :partial => 'groups/group', :locals => { :group => group } %>
   <% end %>
<% end %>

我没有收到任何错误,但没有排除任何用户组。

【问题讨论】:

    标签: sql ruby-on-rails api ruby-on-rails-4


    【解决方案1】:
    new_groups = RMeetup::Client.fetch(:groups, :lat => @user.latitude, :lon => @user.longitude)
    current_group_ids = current_user.groups.pluck(:group_id)
    @groups = new_groups.reject { |group| current_group_ids.include?(group.id) }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-27
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多