小编Tyl*_*ler的帖子

在rails上的所有请求中随机"SELECT 1"查询

我用miniprofiler描述我的rails 3.2应用程序,它向我显示了一个

SELECT 1
Run Code Online (Sandbox Code Playgroud)

在每个页面加载或ajax调用开始时查询.它只需要0.4毫秒,但它仍然是一个看似不必要的数据库查询.

任何人都知道为什么这个查询正在发生或如何摆脱它?

在此输入图像描述

database postgresql activerecord ruby-on-rails-3

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

Rails功能测试与登录用户(未定义的方法'会话')

我正在用rspec编写功能规范,并希望每次都跳过登录步骤.用户通过omniauth(无设计)进行身份验证,并设置session[:user]变量然后引用以保持登录状态.我希望能够直接设置会话变量:

require 'spec_helper'

describe "My page" do
  it "has what I want on it when logged in" do
    user = FactoryGirl.create(:user)
    session[:user] = user.id
    visit my_path
    page.should have_content "Foobar"
  end
end
Run Code Online (Sandbox Code Playgroud)

但这给了

 Failure/Error: session[:user] = user.id
 NameError:
   undefined local variable or method `session' for #<RSpec::Core::ExampleGroup::Nested_1:0x007fd13456d170>
Run Code Online (Sandbox Code Playgroud)

有没有办法直接设置会话变量,以便我可以避免大多数测试中的登录步骤?

session rspec ruby-on-rails omniauth ruby-on-rails-3

7
推荐指数
1
解决办法
3283
查看次数

Rails simple_form,在输入之前移动提示

无论如何移动提示组件使其出现在输入之前?

当前显示的组件按以下顺序显示:标签,输入,提示,错误.我尝试添加:components选项,但这不起作用.

这是我的代码:

<%= f.input :content, 
            :components => [:label, :hint, :input], 
            :as => :text, 
            hint: 'Please 1) include your exact copy here, 2) upload your copy document in the next step, or 3) describe any content services to include in our estimate.', 
            required: true, 
            :label => "Copy" %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails simple-form

7
推荐指数
2
解决办法
4776
查看次数

Postgres从.dump文件恢复:用于编码"UTF8"的无效字节序列

我已经下载了我的heroku数据库的最新副本

$ curl -o latest.dump `heroku pg:backups public-url --app myapp`
Run Code Online (Sandbox Code Playgroud)

这会在我的本地计算机上提供以下类型的文件:

$ file db/latest.dump
    db/latest.dump: PostgreSQL custom database dump - v1.12-0
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用psql将其导入到我的本地Postgres DB(my_db)中.但是,我遇到了很多错误:

$ psql my_db < db/latest.dump
    ...
    psql:db/latest.dump:119425: invalid command \?A~???b?{#?+????LS??
    psql:db/latest.dump:119426: invalid command \D%!?/F??g????A???dC????|2?M?$?8GTJ??c?E?;???Sh??S?[NP?f?2?+H?W????k
    ... [thousands of lines]
    psql:db/latest.dump:261719: ERROR:  invalid byte sequence for encoding "UTF8": 0xba
Run Code Online (Sandbox Code Playgroud)

该命令psql -f db/latest.dump my_db以同样的方式失败.

为了将本地文件导入到具有相同模式的新数据库等,需要做些什么?

postgresql heroku psql

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

iframe没有在Chrome中读取Cookie

Chrome不允许儿童iframe阅读自己的Cookie.

我有一个包含子iframe的父网页:

  • 父母在 https://first-site.com
  • 孩子在<iframe src="https://second-site.com">(父母的内部)
  • 饼干设置
    • 路径:'/'
    • 安全:是的
    • httpOnly:false
    • 域名:'.second-site.com'

我控制两个站点,我希望iframe在iframe中执行需要读取cookie的操作.second-site.com.外部父母不需要知道任何关于此的事情.

它适用于除Chrome以外的所有浏览器.

Chrome根本不会让孩子可以使用子页面自己的cookie.

在自己的窗口中访问子页面并执行操作适用于所有浏览器,包括Chrome.

我已经在所有排列中尝试了这两个选项:

  • 设置secure:falsesecure:true用于cookie
  • sandbox="allow-same-origin allow-scripts"为iframe 设置,或删除sandbox属性

什么是Chrome的不同之处,Chrome中的iframe如何访问自己的Cookie?

javascript cookies iframe google-chrome cross-domain

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

rails/rspec中请求规范的存根辅助方法

我有一个名为get_books_from_amazon的辅助方法,它执行API调用并返回一个书籍数组.我无法弄清楚如何在我的请求规范中将其存根.

module BooksHelper
  def get_books_from_amazon(search_term)
    ...
  end
end

class StaticController < ApplicationController
  include BooksHelper
  def resources
    @books = get_books_from_amazon(search_term)
  end
end
Run Code Online (Sandbox Code Playgroud)

我在我的规范中尝试了以下内容,但都无济于事:

# spec/requests/resource_pages_spec.rb
...
describe "Navigation" do
  it "should do such and such" do
    BooksHelper.stub!(:get_books_from_amazon).and_return(book_array)
    StaticHelper.stub!(:get_books_from_amazon).and_return(book_array)
    ApplicationHelper.stub!(:get_books_from_amazon).and_return(book_array)
    StaticController.stub!(:get_books_from_amazon).and_return(book_array[0..4])
    ApplicationController.stub!(:get_books_from_amazon).and_return(book_array[0..4])
    request.stub!(:get_books_from_amazon).and_return(book_array)
    helper.stub!(:get_books_from_amazon).and_return(book_array)
    controller.stub!(:get_books_from_amazon).and_return(book_array)
    self.stub!(:get_books_from_amazon).and_return(book_array)
    stub!(:get_books_from_amazon).and_return(book_array)

    visit resources_path
    save_and_open_page
  end
Run Code Online (Sandbox Code Playgroud)

关于问题是什么的任何想法?

rspec mocking stub helper ruby-on-rails-3

4
推荐指数
2
解决办法
2900
查看次数

Heroku ssl证书:密钥无法读取,因为它受密码保护

我无法生成Heroku将接受secure.mydomain.com的ssl证书.我正在使用DNSimple,Cedar Stack,并按照此处的说明操作:https://devcenter.heroku.com/articles/ssl-certificate

  1. 从DNSimple复制server.key和server.orig.crt
  2. 获取根CA证书 $ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > rapidssl_bundle.pem
  3. 用一个连接成一个文件 cat server.orig.crt rapidssl_bundle.pem > server.crt

所以现在我有了server.key和server.orig.crt文件,我尝试将其上传到Heroku $ heroku certs:add server.crt server.key.这给出了错误

Key could not be read since it's protected by a passphrase.
Run Code Online (Sandbox Code Playgroud)

上面的文档没有提到有关从server.key文件中删除密码的任何内容.所以我在这里挖掘并找到了文档:https://devcenter.heroku.com/articles/ssl#customdomain-ssl.我在上面的#1和#2之间运行这些命令:

1B. $ mv server.key server.orig.key

1C. $ openssl rsa -in server.orig.key -out server.key

然而,这给出了错误

unable to load Private Key
47930:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/pem/pem_lib.c:648:Expecting: ANY PRIVATE KEY
Run Code Online (Sandbox Code Playgroud)

我怀疑这意味着没有找到私钥.

谁知道这里有什么问题?这是Heroku问题还是openssl问题(或DNSimple问题)?

ssl openssl heroku ssl-certificate dnsimple

4
推荐指数
2
解决办法
2218
查看次数

量角器错误 - 无法启动WebDriver会话

我正试图在http://angular.github.io/protractor/#/上运行普通的Protillactor示例.我已完成所有步骤,但我收到以下错误.

我曾尝试解决这里这里binary: "/Applications/Google\ Chrome.app"binary: "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome",和没有工作

我不确定我还能配置什么; 它似乎没有用.知道我能做些什么才能让它发挥作用?

编辑 我可以在http:// localhost:4444/wd/hub看到状态,所以不确定问题是使用protractor配置还是使用webdriver-manager.

webdriver-manager出错:

Starting ChromeDriver 2.13.307650 (feffe1dd547ee7b5c16d38784cd0cd679dfd7850) on port 10276
Only local connections are allowed.
15:18:35.760 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.9.5', java.version: '1.8.0_31'
Driver info: driver.version: unknown
  at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:175) …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-webdriver protractor

4
推荐指数
1
解决办法
8477
查看次数

Heroku上没有显示500错误页面

我正在尝试在Heroku上显示自定义500错误页面,运行rails 3.2.11

我按照以下步骤操作:https: //devcenter.heroku.com/articles/error-pages

该过程适用于维护页面,但似乎不适用于错误页面.我很肯定在Heroku中S3 URL是正确的,当我直接访问S3 URL时,我可以很好地查看错误页面(它设置为公共).

在production.rb中将config.consider_all_requests_local设置为false

关于为什么Heroku没有展示它的任何想法?我只是在各种浏览器中得到一个空白的屏幕(Chrome说它是500错误,但不呈现页面).

heroku custom-error-pages ruby-on-rails-3

3
推荐指数
1
解决办法
1383
查看次数

在Ruby中通过SSL进行API调用

我有工作就好打往非SSL的API的方法,但它给了我,每当我只请求HTTPS的API以下错误响应:

757: unexpected token at '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
 Instead use the HTTPS scheme to access this URL, please.<br />
</p>
</body></html>
Run Code Online (Sandbox Code Playgroud)

该方法相当简单:

def my_service_api_call(path = nil, query = nil)
  my_service_api_key = ENV["MY_SERVICE_KEY"]
  api_path = "#{path}/?api_key=#{my_service_api_key}&#{query}"
  url = URI.parse(api_path)
  req = Net::HTTP::Get.new(api_path)
  res = Net::HTTP.start(url.host, url.port) { |http| …
Run Code Online (Sandbox Code Playgroud)

ruby api ssl ruby-on-rails

3
推荐指数
1
解决办法
1494
查看次数