要从Rails中的URL查询中解析多值字段,您可以使用ActionDispatch::Request
对象的parameters
方法。这个方法会将查询参数解析为一个哈希,其中多值字段将被转换为数组。
例如,假设您的URL查询如下:
http://example.com/search?q[]=ruby&q[]=rails&q[]=programming
在您的控制器中,您可以使用以下代码来解析多值字段q[]
:
def search
query_params = params.require(:q)
# query_params 将包含一个数组,例如 ["ruby", "rails", "programming"]
end
请注意,您需要使用require
方法来获取q
参数,这样如果它不存在,将会引发一个错误。如果您希望q
参数是可选的,请使用permit
方法:
def search
query_params = params[:q]
# query_params 将包含一个数组,例如 ["ruby", "rails", "programming"],如果存在
# 如果不存在,query_params 将为 nil
end
在这种情况下,如果q
参数不存在,query_params
将为nil
。如果您希望在这种情况下使用一个默认值,请使用fetch
方法:
def search
query_params = params.fetch(:q, [])
# query_params 将包含一个数组,例如 ["ruby", "rails", "programming"],如果存在
# 如果不存在,query_params 将为一个空数组
end
在这种情况下,如果q
参数不存在,query_params
将为一个空数组。
领取专属 10元无门槛券
手把手带您无忧上云