小编mik*_*927的帖子

Rails - Rspec - stub params

我在控制器中创建了一些公共方法,它做了一些工作.

 def current_service
    service_name = params[:controller].gsub('api/v1/', '').gsub(%r{/.+}, '')
 end
Run Code Online (Sandbox Code Playgroud)

我想使用RSpec测试这个方法,但我不知道怎样才能使用params.我该怎么办?

ruby rspec ruby-on-rails

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

Rails HTTP - POST

我正在发送 HTTP POST 请求:

data = { id: 1, name: 'ABC' }

uri = URI.parse('http://localhost:3000/events')
http = Net::HTTP.new(uri.host, uri.port)
http.post(uri, data.to_json)
Run Code Online (Sandbox Code Playgroud)

我的路线文件:

Rails.application.routes.draw do
  post '/events' => 'receiver#create'
end
Run Code Online (Sandbox Code Playgroud)

而创建方法看起来像:

def create
 package = {
  id: ,
  name: 
 }
end
Run Code Online (Sandbox Code Playgroud)

如何访问通过请求传递的数据值?我的目标是将其分配给创建方法中的新哈希

ruby post ruby-on-rails http request

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

导航后 Angular 显示小吃栏

我有两个组件。在成功的服务器响应的第一个中,我想要执行以下操作:

this.router.navigate(['']);
this.snackBarMessage = 'Successfully submitted';
Run Code Online (Sandbox Code Playgroud)

然后页面被重定向到另一个组件,我想在那里显示 SnackBarMessage 消息,例如 (ngOnInit())

像这样的东西:

this.snackBarService.openSnackBar(snackBarMessage, 'Close', 9999999);
Run Code Online (Sandbox Code Playgroud)

我的小吃吧服务:

import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material';

@Injectable({
  providedIn: 'root'
})
export class SnackBarService {

  constructor(private matSnackBar: MatSnackBar) { }

  openSnackBar(message: string, action: string, duration?: number) {
    this.matSnackBar.open(message, action, { duration });
  }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?导航后如何传递snackBarMessage到另一个组件?

angular angular-router

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

Ruby - 哈希 - 组合

我有一个包含5个元素的哈希,例如:

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', d: 'ccc', e: 'www' }
Run Code Online (Sandbox Code Playgroud)

我的目标是每次循环哈希返回,但没有一个元素,如:

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', d: 'ccc' }
Run Code Online (Sandbox Code Playgroud)

然后

my_hash = {a: 'qwe', b: 'zcx', c: 'dss', e: 'www' }
Run Code Online (Sandbox Code Playgroud)

等等

使用数组我会使用组合方法但是当我使用哈希?我想尽可能轻松地做到这一点

ruby hash

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

Nginx 乘客不服务 Rails 应用程序

我在 centos 7 VPS 上为乘客设置了 Nginx。我将 nginx 和乘客安装为 gem。另外我安装了passenger-install-nginx-module。当我启动 sudo service nginx 并输入passenger-status 时,我得到“Phusion Passenger 当前没有为任何应用程序提供服务。”。从我的 nginx conf 文件

http {
    passenger_root /usr/local/rvm/gems/ruby-2.4.1/gems/passenger-5.1.8;
    passenger_ruby /usr/local/rvm/gems/ruby-2.4.1/wrappers/ruby;
    passenger_app_env production;
    passenger_instance_registry_dir /var/lib/passenger-instreg;

 ...

 server {
        listen       80;
        server_name  localhost;
        root /home/myuserhere/current/public;
        passenger_enabled on;
Run Code Online (Sandbox Code Playgroud)

文件passenger.* 在我重启nginx 时正常创建。

echo $PASSENGER_INSTANCE_REGISTRY_DIR 返回与 nginx conf 文件中相同的路径。

我做错了什么,passegner 不启动应用程序?

ruby centos ruby-on-rails passenger nginx

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

标签 统计

ruby ×4

ruby-on-rails ×3

angular ×1

angular-router ×1

centos ×1

hash ×1

http ×1

nginx ×1

passenger ×1

post ×1

request ×1

rspec ×1