Tag: grape api

Ruby中的`try`和`&.`(安全导航操作符)有什么区别?

这是我的代码: class Order < Grape::Entity expose :id { |order, options| order.id.obfuscate } expose :time_left_to_review do |order, options| byebug order&.time_left_to_review # ERROR end expose :created_at { |order, options| order.last_transition.created_at } end # NoMethodError Exception: undefined method `time_left_to_review' for # 我想&. 是.try的捷径,但我想我错了。 可能有人指出我正确的方向,我错过了什么? 我觉得这不是ruby相关的。 葡萄可能吗? 虽然我不明白它是怎么回事。

如何使用GRAPE API允许二进制文件下载

我想允许使用ruby的Grape API下载二进制文件(.p12文件)。 这就是我想要的。 get ‘/download_file’ do pkcs12 = generate_pkcsfile content_type(‘application/octet-stream’) body(pkcs12.der) end 使用ActionController的等效代码是 begin pkcs12 = generate_pkcsfile send_data(pkcs12.der, :filename => ‘filename.p12′) end 问题是使用API​​下载的文件似乎是为每个字符嵌入了’\ ufffd’前缀的文本文件,而使用浏览器下载的文件似乎是二进制文件。 如何使用GRAPE API框架允许下载通过ActionController的send_data下载的同一文件