[英]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.