Rails请求Uri太大

时间:2015-03-26 01:42:27

标签: ruby-on-rails csv heroku uri

我的应用程序中有一个方法,它接受数百个用户联系人电话号码的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

rails route:

get '/getActivatedFriends/:friends_phone_number_csv',
  to: 'requests#getActivatedFriends', via: 'post',
  constraints: { friends_phone_number_csv: /([0-9]+,?)+/ }

1 个答案:

答案 0 :(得分:0)

请改用POST请求,以解决问题。