簡體   English   中英

Rails檢查請求參數

[英]Rails checking request parameters

我有一個Rails請求參數可以有多個值的情況。
例如p1[]=v1&p1[]=v2&p1[]=v3
但是在某些情況下,它可能只有一個值:
例如p1=v1
如果在控制器中我想檢查參數p1是否僅具有單個值“ v1”,我該如何完成?

if params[:p1] == 'v1'

要么

if params[:p1] == ['v1']

還是有更好的方法來做到這一點?

您不能以這種方式發送參數,只有最后一個值將存儲在參數中。 您需要明確地說它們是一個數組:

p1[]=v1&p1[]=v2&p1[]=v3

然后,您可以執行以下操作:

params[:p1].include? 'v1'

無論傳遞了多少p1 ,假設您始終傳遞p1[]=而不是p1= 否則,您可以隨時執行以下操作:

Array.wrap(params[:p1]).include? 'v1'

更新:

要檢查v1是否是唯一值,請執行以下操作:

Array.wrap(params[:p1]).uniq == ['v1']

使用數組包含?

if ['v1', 'v1v2', 'v1v2v3'].include?(params[:p1])

您可以將參數轉換為數組(如果它是單個值),然后在整個代碼中將其視為普通數組。

params[:p1] = [params[:p1]] unless params[:p1].is_a? Array

然后照常使用params

if params[:p1].include? 'v1'
    # do your logic here
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM