【问题标题】:if ID equals param not working如果 ID 等于参数不起作用
【发布时间】:2013-11-12 08:05:55
【问题描述】:

我正在尝试在 json (/groups/1/clients.json) 中收集我当前 group_id 的所有客户端

我正在使用自定义方法,因为我还想要 current_user 的所有组。

无论如何;如果params[:group_id] 等于我的循环的group.id,我有一个方法可以检查current_user 的所有组的循环。如果是的话;在 JSON 文件中输出我的客户。

现在我 100% 肯定 params[:group_id]group.id 存在(如果我转义 if params[:group_id] == group.id,我都能够将它们输出到 JSON 中。

不过,当我使用 IF 语句时,我没有得到我需要的输出。有谁知道为什么我的 IF 语句没有按预期进行?

@usersGroups = current_user.groups
if params[:group_id]
  @usersGroups.each do |group| 
    if group.id == params[:group_id]
      respond_to do |format|
          format.json { render json: group.clients, status: :unprocessable_entity }
      end
    end
  end
end

【问题讨论】:

  • 参数一般是字符串
  • 我可以将两者之一解析为字符串或整数吗?
  • 最安全的是将组的 id 字符串化

标签: ruby-on-rails json ruby-on-rails-4


【解决方案1】:
group.id.to_s == params[:group_id]

你也可以像这样清理你的代码:

group = Group.where(user_id: current_user.id).find(params[:group_id])
respond_to do |format|
  format.json { render json: group.clients, status: :unprocessable_entity }
end

【讨论】:

  • 感谢编辑;不过,我使用的是没有 group_id 的相同方法。 (获取“所有”用户组)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 2014-11-26
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
相关资源
最近更新 更多