小编Chr*_*erJ的帖子

Github 操作按推送路径过滤作业或步骤

我们有一些操作可以逻辑地分组到一个工作流程中,但并非所有操作都需要始终运行。

我知道

on:
  push:
    paths:
    - 'docs/**'
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些信息应用于特定的工作或步骤?

github-actions

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

没有路由匹配GET/sign_up,但我可以访问该页面?

我在生产服务器上为我的Rails 4应用程序记录了一个奇怪的错误:

ActionController::RoutingError: No route matches [GET] "/sign_up"
Run Code Online (Sandbox Code Playgroud)

这显然令人担忧,因为这意味着新用户无法注册.但是,如果我访问该URL,无论是通过手动输入,还是通过单击主页上的按钮,我都可以看到注册页面.

没有重定向,URL栏中的URL保持不变.

这是有问题的路线:

devise_scope :identity do
  get 'sign_in', :to => 'devise/sessions#new'
  get 'sign_up', :to => 'devise/registrations#new'
  get 'sign_out', :to => 'devise/sessions#destroy'
end
Run Code Online (Sandbox Code Playgroud)

由于主题黑客攻击,我们主页上的按钮是一个用GET提交的表单.我认为这可能是一个问题,但日志显示它正确接收GET请求.

这里发生了什么?我应该从哪里开始寻找诊断?

UPDATE

通过我们主页上的黑客,我的意思是,由于<a class="btn...导航器不支持导航栏,我们使用方法GET的表单使用它支持的按钮类型 - 所以从服务器的角度来看,用户仍在发送单击该按钮时获取GET/sign_up.这个按钮只是为了让他们进入/ sign_up页面(registration_controller #new),这不是他们按下提交注册表单及其所有细节的按钮.

(注册表单本身正常,即发送POST)

为了清楚起见,我已经手动完成了整个注册过程,并且它可以正常工作.我从来没有得到404.当我进行漫步时,日志消息不会出现.

这是相关的部分 rake routes

                       Prefix Verb     URI Pattern                                                       Controller#Action
         new_identity_session GET      /identities/sign_in(.:format)                                     devise/sessions#new
             identity_session POST     /identities/sign_in(.:format)                                     devise/sessions#create
     destroy_identity_session DELETE   /identities/sign_out(.:format)                                    devise/sessions#destroy
 cancel_identity_registration GET      /identities/cancel(.:format)                                      identities/registrations#cancel
        identity_registration POST     /identities(.:format)                                             identities/registrations#create
    new_identity_registration GET      /identities/sign_up(.:format)                                     identities/registrations#new
   edit_identity_registration GET      /identities/edit(.:format)                                        identities/registrations#edit
                              PATCH …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku devise ruby-on-rails-4 rollbar

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

include ActionDispatch :: TestProcess可以防止Guard正确重新加载

我正在使用fixture_file_upload来测试我的rspecs中的一些文件上传

如果我只是把它放在规范中我得到一个错误的方法没有找到.

为了让它工作,我在我的规范中添加了包含ActionDispatch :: TestProcess,但是我发现自从我这样做以来,当我进行更改时,该警卫没有正确地重新加载spec文件,它会继续针对旧版本的文件运行测试.

我可以通过停止和重启警卫来解决这个问题,但它有点挫败了目的.

我该如何防止这种情况发生?我应该如何引用fixture_file_upload或者我应该在哪里放置包含?

rspec file-upload ruby-on-rails guard

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

多个连续的httpBackend请求会导致意外的请求

我正在测试轮询资源的序列,直到满足条件.

Book = $resource("/books/:id", {id: "@id"});

function poll(success) {
  Book.get({id:1}, function() {
    if (canStop) {
       success();
    } else {
       $timeout(poll, 1000);
    }

  });
};
Run Code Online (Sandbox Code Playgroud)

以下测试失败了 Error: Unsatisfied requests: GET /user_workshops/1

describe('poll', function() {
  beforeEach(function() {
    $httpBackend.expectGET('/books/1').respond(200,{id:1});
    $httpBackend.expectGET('/books/1').respond(200,{id:1, newVal:1});

    poll(function() {
       successCalled = true;
    });

    $httpBackend.flush();
    $timeout.flush();

    canStop=true;

    $httpBackend.flush();
  });

  it('should call success when canStop is true', function() {
     expect(successCalled).toBe(true);
  });
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试重新排列测试顺序,将第二个放在第二个expectGET之前,httpBackend.flush()但后来我得到:

Error: Unexpected request: POST /books/1
No more request expected
Run Code Online (Sandbox Code Playgroud)

angular-resource httpbackend

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

AREL中的jsonb查询

我对AREL相当陌生,并且在查找有关将Postgres JSONB与AREL结合使用时遇到麻烦。

我如何将该SQL转换为AREL语句?

SELECT
    tag,
    count(tag)
FROM
    people p,
    jsonb_array_elements(p.data->'tags') tag 
WHERE p.data->'tags' ? '#{tag}' 
GROUP BY tag
Run Code Online (Sandbox Code Playgroud)

arel jsonb ruby-on-rails-4.2

5
推荐指数
0
解决办法
383
查看次数

Postgres选择其中jsonb数组包含另一个数组中的一个或多个元素

我有一个 postgres 列“数据”,它是这种格式的 jsonb:

{
  'tags': ['friend','enemy','frenemy']
  ... // other data
}
Run Code Online (Sandbox Code Playgroud)

假设我想选择所有标记为“敌人”或“敌人”的行,我该怎么做?

我知道我可以选择一个标签

SELECT * FROM people WHERE people.data->'tags' ? 'enemy'
Run Code Online (Sandbox Code Playgroud)

我应该使用@> ANY,但无法弄清楚使其工作的语法。

postgresql json jsonb

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

摩卡测试突然停止:找不到模块“pg-native”

我们的 mocha 测试突然停止,控制台上显示以下消息:

Cannot find module `pg-native`
Run Code Online (Sandbox Code Playgroud)

没有显示堆栈跟踪,mocha 不呈现测试的正常输出。测试立即停止。

如果我禁用有问题的测试,所有测试都会正常运行。

安装 pg-native 消除了错误,但是 mocha 只是挂在那个点上。

mocha.js node.js sequelize.js

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