0

json (/groups/1/clients.json) で現在の group_id のすべてのクライアントを収集しようとしています。

aswellのすべてのグループが必要なため、カスタム メソッドを使用していますcurrent_user

ともかく; params[:group_id]ループの group.id と等しい場合、 current_user のすべてのグループのループをチェックするメソッドがあります。もしそうなら; クライアントを JSON ファイルに出力します。

今、私はそれparams[:group_id]group.id存在することに100%肯定的です(.をエスケープすると、両方ともJSONに出力できましたif params[:group_id] == group.id

それにもかかわらず、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
4

1 に答える 1

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
于 2013-11-12T08:11:27.500 に答える