最近我在我的应用程序中添加了移动屏幕,之后,response_to阻止不是
mime_type.rb
Mime::Type.register_alias "text/html", :mobile
Mime::Type.register "applications/xls", :xls
控制器
def index
@customer_ord = CustomerOrder.all
respond_to do |format|
format.html
format.csv #{send_data @customer_ord.to_csv}
format.xls #{send_data @customer_orders.to_csv(col_sep: "/t")}
format.pdf end end
pdf,xls链接视图
<%= link_to "PDF", customer_orders_path(format: "pdf"), :target => 'blank'%>
<%= link_to "CSV", customer_orders_path(format: "csv")%>
<%= link_to "EXCEL", customer_orders_path(format: "xls")%>
添加mime类型移动后,我使用单独的移动屏幕。在应用程序的移动版本中,respond_to阻止无效。
对于json方法也没有用,我有
respond_to do |format|
format.json { render json: @price_prod.price }
end
我把它改成了
render json: @price_prod.price
它现在正在运行,但对于pdf,xls生成无效,请帮助
答案 0 :(得分:0)
它只响应移动格式,因为我在我的应用程序控制器中有这个代码
def prepare_for_mobile
session[:mobile_param] = params[:mobile] if params[:mobile]
request.format = :mobile if mobile_device?
end
我把它改成了
def prepare_for_mobile
session[:mobile_param] = params[:mobile] if params[:mobile]
if mobile_device? && request.format == :pdf
request.format = :pdf
elsif mobile_device? && request.format == :xls
request.format = :xls
elsif mobile_device? && request.format == :csv
request.format = :csv
elsif mobile_device?
request.format = :mobile
end
end
它对我有用,但可能有更好的方法来解决它。