【发布时间】:2015-03-26 01:42:26
【问题描述】:
我的应用中有一个方法可以接受包含数百个用户联系人电话号码的 CSV,这些电话号码的长度各不相同,但最长可达数千个字符。在尝试执行该方法时:
localhost:3000/getActivatedFriends/phoneNum1,phoneNum2,phoneNum3...phoneNum350...etc
出现以下错误:
Request-URI Too Large
WEBrick::HTTPStatus::RequestURITooLarge
在我的个人设备上,CSV 中的字符数是 2868。我怎样才能绕过这个限制,或者在 localhost 和 Heroku 中设置为无限长度?
请求控制器动作: (请忽略可能的 SQL 注入,因为这只是在开发中)
def getActivatedFriends
@results = User.find_by_sql("SELECT
a.id
, a.username
, a.phoneNumber
FROM users a
WHERE phoneNumber in (" + params[:friends_phone_number_csv].to_s + ") and
removed = 0 and
is_user = 1;")
respond_to do |format|
format.html
format.json { render json: { friends_match: @results }}
end
end
铁路路线:
get '/getActivatedFriends/:friends_phone_number_csv',
to: 'requests#getActivatedFriends', via: 'post',
constraints: { friends_phone_number_csv: /([0-9]+,?)+/ }
【问题讨论】:
标签: ruby-on-rails csv heroku uri