【问题标题】:respond_to block not working in mobile version of rails applicationrespond_to 块在 Rails 应用程序的移动版本中不起作用
【发布时间】:2014-12-17 19:39:06
【问题描述】:

最近我在我的应用程序中添加了移动屏幕,之后 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 生成不起作用,请帮助

【问题讨论】:

    标签: ruby-on-rails mime-types prawn


    【解决方案1】:

    它仅响应移动格式,因为我的应用程序控制器中有此代码

     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
    

    它对我有用,但可能有更好的方法来解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多