如果Rails与数据库对象匹配,则它不显示API对象

时间:2013-09-23 19:55:36

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

我的应用程序使用Meetup.com中的API提取组对象。这些对象不会进入我的数据库。然后,用户可以将一个组添加到他们的配置文件中,此时它会进入我的数据库。

当用户登录我的网站时,我不想向他们展示他们已经添加到他们的个人资料中的来自Meetup.com的群组对象。这里的共享密钥是meetup.com对象有一个“群组.id“匹配我的数据库”group“model的”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)

但我不知道怎么做而不用在哪里。也许在视图中这样的东西?:

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

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

1 个答案:

答案 0 :(得分: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) }