我正在尝试重定向:
redirect_to :controller => 'forex', :action => 'index', :format => :csv, :paramer => instrument_for_sql
但在日志中我有:
重定向到http://localhost:3000/forex/index.csv?paramer=AUDJPY 已完成406在150毫秒内无法接受
但如果我直接粘贴http://localhost:3000/forex/index.csv?paramer=AUDJPY就行了。
有什么想法吗?
class ForexController < ApplicationController
def index
instrument_for_sql = params[:paramer]
receive_csv
respond_to do |format|
format.csv
end
end
routes.rb
match '/forex', :controller => 'forex', :action => 'index', :format => 'csv'
答案 0 :(得分:0)
def index
instrument_for_sql = params[:paramer]
receive_csv
redirect_to :controller => 'forex', :action => 'index', :format => :csv, :paramer => instrument_for_sql
end
试试这个,删除respond_to阻止。
答案 1 :(得分:0)
似乎Rails在生成的url的情况下为您设置了响应格式,并返回406 error,因为客户端不接受这样的响应。所以尝试替代方案:
答案 2 :(得分:0)
我解决了。我试图在respond_to块中进行重定向。外面有效。当我在respond_to中使用format.html时,它也有效。
respond_to do |format|
format.html { redirect_to :controller => 'forex', :action => 'index', :format => :csv, :paramer => instrument_for_sql }