小编Mik*_*ike的帖子

Amazon Cloudfront:私有内容,但最大化本地浏览器缓存

对于我的网络应用程序中的JPEG图像传递,我正在考虑使用Amazon S3(或亚马逊Cloudfront,如果它是更好的选择),但有两个,可能是相反的要求:

  1. 图像是私人内容; 我想使用过期时间短的签名网址.
  2. 图像很大; 我想让它们通过用户的浏览器长期缓存.

我想的方法是:

  1. 用户请求www.myserver.com/the_image
  2. 我的服务器上的逻辑确定允许用户查看图像.如果他们被允许......
  3. 将浏览器(is HTTP 307 best ?)重定向到已签名的Cloudfront URL
  4. 签名的Cloudfront URL将在60秒后到期,但其响应包括" Cache-Control max-age=31536000, private"

我想到的问题是,下次加载页面时,浏览器将查找www.myserver.com/the_image,但其缓存将用于签名的Cloudfront URL.由于到期时间非常短,我的服务器将第二次返回不同的签名Cloudfront URL,因此浏览器不会知道它可以使用其缓存.

如果没有我的网络服务器代理来自Cloudfront的图像(这显然否定了使用Cloudfront的所有好处),有没有办法解决这个问题?

想知道是否有可以做的事情etag,HTTP 304但不能完全加入点......

caching amazon-s3 amazon-web-services http-headers amazon-cloudfront

15
推荐指数
2
解决办法
1495
查看次数

ActiveRecord的"order"方法是否容易受到SQL注入攻击?

我知道在调用时使用插值字符串是不安全的.where.

例如:

Client.where("orders_count = #{params[:orders]}")

应改写为:

Client.where("orders_count = ?", params[:orders])

调用时使用插值字符串是否安全.order?如果没有,应该如何重写以下内容?

Client.order("#{some_value_1}, #{some_value_2}")

sql ruby-on-rails-4

15
推荐指数
2
解决办法
6806
查看次数

使用ImageMagick重复或"平铺"图像

如何使用ImageMagick平铺图像?我不认为我可以使用,montage因为我希望列移位原始图像高度的50%.

显示我正在尝试做的事情的示例可能更容易:

从...开始:

在此输入图像描述

结束于:

在此输入图像描述

谢谢!

image imagemagick tile montage

12
推荐指数
3
解决办法
8361
查看次数

HTML视口中的中心图像(不含JavaScript)

我有一个我想在浏览器中显示的图像,以便:

  1. 如果图像小于浏览器视口,则图像以水平和垂直方向居中.
  2. 如果图像大于视口,则缩小图像以尽可能多地填充视口,而无需调整图像的纵横比.同样,图像在水平和垂直方向上居中.

不想使用JavaScript ; 什么是最好/最具语义的HTML和CSS来做到这一点?

更新我被要求澄清语义:图像是内容; HTML中唯一的内容.

@GionaF的想法让我得到了一个快乐(非常简单)的解决方案:

HTML

<!DOCTYPE html>
<head>
  <title></title>
  <LINK href="test2.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div>
      <img src="photo.jpg" alt="photo" />
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS

img {
    max-width:100%;
    max-height:100%;
    position:absolute;
    top:0; left:0; right:0; bottom:0;
    margin:auto;
}
Run Code Online (Sandbox Code Playgroud)

html css image viewport

11
推荐指数
1
解决办法
2万
查看次数

有效的商家集成(非现场付款)

我原来的问题(下面)可能太具体了,所以我会问一些更普遍的问题!

有人能指出我使用Active Merchant Integrations支持异地支付网关的教程,示例或文档的方向吗?

Active Merchant的rdoc列出了以下所有支持的非现场支付网关,但我没有找到有关如何使用ActiveMerchant :: Billing :: Integrations的任何教程或示例

  • 2结帐
  • Banca Sella GestPay
  • Chronopay
  • 直接电子银行
  • DirecPay的
  • 网际威信
  • Moneybookers的
  • NOCHEX
  • PayPal网站付款标准
  • SagePay表格
  • Valitor
  • WorldPay的

虽然它们可能是好的,但是peepcoderails casts只考虑网关,而不是集成.

非常感谢!

我的公司正在从PayPal Express Checkout转移到WorldPay Business Gateway(托管付款页面).我们正在使用Rails和Active Merchant.

  1. Active Merchant是否支持WorldPay Business Gateway(托管付款页面)?我认为确实如此,从rdoc来看
  2. 我必须向ActiveMerchant提供什么参数:: Billing :: Integrations :: WorldPay.new?

谢谢

integration ruby-on-rails activemerchant worldpay

9
推荐指数
1
解决办法
5321
查看次数

Paymill:如何在测试时模拟付款失败?

背景

如何使测试付款失败?(例如,卡被拒绝,或者卡在未来的订阅付款中过期)

Stripe会让我使用特殊的卡号进行此操作,但Paymill 似乎没有任何此类文档(英文).


payment_provider.rb

class PaymentProvider
  Paymill.api_key = ENV['PAYMILL_PRIVATE_KEY']

  def self.start_new_subscription(email, description, token)
    offer = Paymill::Offer.find(ENV['PAYMILL_OFFER_ID'])
    client = Paymill::Client.create(email: email, description: description)
    payment = Paymill::Payment.create(token: token, client: client.id)
    subscription = Paymill::Subscription.create(client: client.id, offer: offer.id, payment: payment.id)
    subscription.id
  end
end
Run Code Online (Sandbox Code Playgroud)


payment_provider_spec.rb

require 'spec_helper'

describe PaymentProvider do

  describe "#start_new_subscription" do
    it "returns a subscription id, starting 'sub_' when successful" do
      email = "mike@mike.com"
      description = "me"
      token = get_payment_token …
Run Code Online (Sandbox Code Playgroud)

ruby payment payment-gateway stripe-payments paymill

8
推荐指数
1
解决办法
1542
查看次数

在rake任务中使用factory_girl - 获取未初始化的常量

我正试图在像这样的rake任务中使用Factory Girl:

require 'factory_girl'
require File.expand_path("spec/factories.rb")

namespace :users do

  desc "Create sample users for use in development" 
  task :create_sample_users => :environment do
    Factory(:user, :email => "pending@acme.com")
    Factory(:approved_user, :email => "user@acme.com") 
  end

end
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,rake users:create_sample_users我得到错误uninitialized constant Entry(条目是我的应用程序的一个类的名称).

谁能告诉我如何让工厂女孩看我的课程?它在我的测试中运行良好,只是在我的rake任务中失败了.

rake factory ruby-on-rails factory-bot

6
推荐指数
1
解决办法
3165
查看次数

将Rails应用程序从3.2.6升级到3.2.8

我有一个使用Rails创建的Rails应用程序3.2.6.现在3.2.8已经发布了,这是我需要做的更新应用程序吗?

  1. 编辑Gemfile,将行更改gem 'rails', '3.2.6'为gem'rails', '3.2.8'
  2. bundle update rails

那些其他Rails生成的条目Gemfile,例如sass-rails,coffee-railsuglifier

ruby-on-rails rails-3-upgrade

6
推荐指数
1
解决办法
1510
查看次数

使用和不使用Rails的快速(Rspec)测试

我有两节课:

1.Sale是ActiveRecord的子类; 它的工作是将销售数据保存到数据库中.

class Sale < ActiveRecord::Base
  def self.total_for_duration(start_date, end_date)
    self.count(conditions: {date: start_date..end_date})
  end
  #...
end
Run Code Online (Sandbox Code Playgroud)

2.SalesReport是一个标准的Ruby类; 它的工作是生成和绘制有关销售的信息.

class SalesReport
  def initialize(start_date, end_date)
    @start_date = start_date
    @end_date = end_date
  end

  def sales_in_duration
    Sale.total_for_duration(@start_date, @end_date)
  end
  #...
end
Run Code Online (Sandbox Code Playgroud)

因为我想使用TDD并且我希望我的测试运行得非常快,所以我为SalesReport编写了一个不加载Rails的规范:

require_relative "../../app/models/sales_report.rb"

class Sale; end
# NOTE I have had to re-define Sale because I don't want to
# require `sale.rb` because it would then require ActiveRecord.

describe SalesReport do
  describe "sales_in_duration" do
    it "calls Sale.total_for_duration" do
      Sale.should_receive(:total_for_duration)
      SalesReport.new.sales_in_duration
    end …
Run Code Online (Sandbox Code Playgroud)

ruby tdd rspec stub load-path

6
推荐指数
1
解决办法
832
查看次数

Refinery CMS:为引擎内的现有模型生成迁移

我想为我在Refinery CMS引擎中创建的模型添加属性.我知道我可以做以下事情:

  1. rails generate migration AddPartNumberToProducts part_number:string
  2. 手动将迁移文件db/migrate移至vendor/extensions/products/db/migrate

但是,是否有命令首先生成迁移到正确的文件夹?

谢谢!

ruby ruby-on-rails database-migration refinerycms refinery

5
推荐指数
1
解决办法
1218
查看次数

可以分配给一个Heroku应用程序的最大域数?

我正在和一个客户讨论一个项目,他们希望他的用户通过他们自己的域名访问应用程序,如果他们选择...

可以分配给一个Heroku应用程序的自定义域的数量是否有限制?

dns heroku

5
推荐指数
2
解决办法
1005
查看次数