小编lig*_*h05的帖子

在rails中使用RSpec和Capybara时未定义的方法`visit'

我不能让capybara与rspec合作.它给了我这个错误:

undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil>
Run Code Online (Sandbox Code Playgroud)

我知道有很多关于此的帖子,但没有解决方案对我有用.他们中的大多数涉及的规格不在/ spec/features中 - 我的是.

首先是错误:

$bundle exec rspec spec
F

Failures:

  1) security signs users in
     Failure/Error: visit "/sessions/new"
     NoMethodError:
       undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil>
     # ./spec/features/security_spec.rb:4:in `(root)'

 Finished in 0.006 seconds
 1 example, 1 failure

Failed examples:

rspec ./spec/features/security_spec.rb:3 # security signs users in
Run Code Online (Sandbox Code Playgroud)

我认为重要的是要注意,起初我使用URL Helper'new_sessions_path'并且它一直给我一个错误undefined local variable or method 'new_sessions_path'.我知道这是有效的,因为:

$ rake routes
logout_sessions GET    /sessions/logout(.:format) sessions#logout
       sessions POST   /sessions(.:format)        sessions#create
   new_sessions GET    /sessions/new(.:format)    sessions#new
      contracts POST   /contracts(.:format) …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails capybara

88
推荐指数
4
解决办法
5万
查看次数

将ES6类getter设置为可枚举

我有一个带有getter属性的ES6类(用babeljs反编译).我知道默认情况下这些属性不可枚举.但是,我不明白为什么我无法使用可枚举的属性Object.defineProperty

// Declare class
class Person {
  constructor(myName) {
    this.name = myName;
  }

  get greeting() {
    return `Hello, I'm ${this.name}`;
  }
}

// Make enumerable (doesn't work)
Object.defineProperty(Person, 'greeting', {enumerable: true});

// Create an instance and get enumerable properties
var person = new Person('Billy');
var enumerableProperties = Object.keys(person);
// => ['name']
Run Code Online (Sandbox Code Playgroud)

Plunker示例

javascript ecmascript-6 babeljs es2015

25
推荐指数
2
解决办法
8687
查看次数

在RSpec 3请求中设置标头

我正在尝试为需要身份验证的某些RSpec请求设置标头.标题是ACCESS_TOKEN.无论我如何设置标头,它都永远不会被设置.我知道应用程序有效,因为我可以手动测试它,我只是不能让rspec测试工作.请在此处查看此问题的完整源代码和测试:https://github.com/lightswitch05/rspec-set-header-example

由于在我的大多数请求规范中都使用了身份验证,因此我创建了支持帮助程序模块来检索访问令牌并将其设置在标头中.下面是我如何设置标题的摘要,查看我在完整源代码中尝试过的所有内容

# my_app/spec/support/session_helper.rb
module SessionHelper
  def retrieve_access_token
    post api_v1_session_path({email: 'test@example.com', password: 'poor_password'})

    expect(response.response_code).to eq 201
    expect(response.body).to match(/"access_token":".{20}"/)
    parsed = JSON(response.body)
    token = parsed['access_token']['access_token']

    @request.headers['HTTP_ACCESS_TOKEN'] = token
  end
end
Run Code Online (Sandbox Code Playgroud)

一个使用此帮助程序的示例请求规范应该可以工作,但总是失败,因为标头永远不会被设置:

# my_app/spec/requests/posts_spec.rb
# ...
context "create" do
  it "creates a post" do
    retrieve_access_token
    post = FactoryGirl.build(:post)

    post api_v1_posts_path(
      post: {
        title: post.title,
        content: post.content
      }
    )

    expect(response.body).to include('"id":')
    expect(response.body).to include('"title":"' + post.title + '"')
    expect(response.body).to include('"content":"' + post.content + '"')
    expect(response.response_code).to eq …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails ruby-on-rails-4.1 rspec3

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

在浏览器中查看Tomcat日志文件

我需要以某种方式将Tomcat日志文件暴露给浏览器.我知道这不安全,但这就是所要求的.

我考虑过从日志位置创建一个硬链接,例如tomcat/webapps/ROOT/html/catalina.out- > mydir/logs/catalina.out,但我认为这不是一个好的解决方案(即使它确实有效).是否有将Tomcat日志文件公开给浏览器的既定方法?

browser logging tomcat

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

铁轨宝石虾,图像和锚

你能告诉我如何插入图像,这将是一个链接,例如第20页?我知道如何使用普通文本:

text "<link anchor='page20'>Go to page 20</link>", :inline_format=>true
Run Code Online (Sandbox Code Playgroud)

然后在第20页我有

add_dest('page20', dest_fit(page.dictionary))
Run Code Online (Sandbox Code Playgroud)

但如何用图像做到这一点?

ruby ruby-on-rails prawn

9
推荐指数
2
解决办法
1281
查看次数

如何从SVN存储库结帐中排除文件夹?

如何排除Jenkins CI以从SVN结帐中排除文件夹?

我试过"排除区域"但是没有用,我是按照正确的方式做的吗?

我在Jenkins上设置的屏幕截图: 詹金斯设置

svn hudson jenkins

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

仅当表存在时才从SQLite中删除

现在我有这个说法

DELETE FROM sqlite_sequence where name = 'table_name';
Run Code Online (Sandbox Code Playgroud)

在大多数情况下工作正常,但现在我有一个sqlite_sequence表没有创建表的情况,所以我回来了

no such table: sqlite_sequence
Run Code Online (Sandbox Code Playgroud)

我需要一个声明,如果表存在,只执行删除.我发现这个陈述告诉我表是否存在

SELECT name FROM sqlite_master WHERE type='table';
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我一直无法成功地将它与删除声明配对

sql database sqlite

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

在AWS ApiGateway中设置基本的WebSocket模拟

我正在尝试在AWS ApiGateway中设置一个非常简单的WebSocket模拟。但是,每次尝试都会给我一个错误:

13:36:52 (X33uOGUfIAMFq7w=) Extended Request Id: X33uOGUfIAMFq7w=
13:36:52 (X33uOGUfIAMFq7w=) Verifying Usage Plan for request: X33uOGUfIAMFq7w=. API Key: API Stage: redacted/prod
13:36:52 (X33uOGUfIAMFq7w=) API Key authorized because route '$connect' does not require API Key. Request will not contribute to throttle or quota limits
13:36:52 (X33uOGUfIAMFq7w=) Usage Plan check succeeded for API Key and API Stage redacted/prod
13:36:52 (X33uOGUfIAMFq7w=) Starting execution for request: X33uOGUfIAMFq7w=
13:36:52 (X33uOGUfIAMFq7w=) WebSocket Request Route: [$connect]
13:36:52 (X33uOGUfIAMFq7w=) Client [UserAgent: null, SourceIp: redacted] attempts to connect to …
Run Code Online (Sandbox Code Playgroud)

websocket aws-api-gateway

6
推荐指数
2
解决办法
772
查看次数

我们怎样才能将葡萄api资源分成多个文件?

嗨,我正在使用intridea的葡萄开发一个简单的红宝石api.假设我们有这个:

class API_v1 < Grape::API
  resource :foo do
  end

  resource :bar do
  end

end
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,以便声明:foo:bar单独的文件?基本上,我想知道是否有可能有类似于rails控制器的东西,其中有多个文件来组织代码.

我希望有人能给我一个如何实现这一目标的见解.

ruby api rest ruby-on-rails grape-api

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

wkhtmltopdf在战争中不能从wicked-pdf执行

我正在尝试使用Ruby On Rails中的wicked-pdf创建一个pdf.它在开发模式下运行良好,但是当我在生产中部署时,我收到错误:

wkhtmltopdf is not executable
Run Code Online (Sandbox Code Playgroud)

我有位于以下位置的wkhtmltopdf可执行文件:

rails_root/bin/wkhtmltopdf-i386
Run Code Online (Sandbox Code Playgroud)

Warbler设置为在战争中包含bin文件夹:

config.includes = FileList["classes/*","bin/*"]
Run Code Online (Sandbox Code Playgroud)

我有邪恶的pdf配置为在正确的位置找到bin:

WickedPdf.config = {
  :exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s
}
Run Code Online (Sandbox Code Playgroud)

我运行warbler然后在jBoss应用服务器上部署战争.当我尝试生成PDF时,我收到有关它不可执行的错误.它在开发模式下运行良好 - 而不是在战争中.

二进制文件的权限应该没问题:

-rwxr-xr-x  1 username group 11446024 Apr  3 11:40 wkhtmltopdf-i386
Run Code Online (Sandbox Code Playgroud)

我尝试使用wkhtmltopdf-binary gem而不是手动包含wkhtmltopdf二进制文件.这在开发模式下也运行良好,但Wicked PDF无法在生产中找到二进制文件.

更新:在生产模式下,我将wicked-pdf配置更改为指向'wkhtmltopdf-binary'gem提供的二进制文件.这也是wkhtmltopdf is not executable错误.路径最终是:jboss-5.1.0.GA/server/default/tmp/3j001-3g0fg5-hf2xi49o-1-hf2xiuld-9q/myrailsapp.war/WEB-INF/gems/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf_linux_386

ruby-on-rails jruby warbler wicked-pdf

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