小编Зел*_*ный的帖子

Controller spec未知关键字:id

我有简单的动作节目

def show
  @field = Field.find_by(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

我想要写它的规格

require 'spec_helper'

RSpec.describe FieldsController, type: :controller do

    let(:field) { create(:field) }

  it 'should show field' do
    get :show, id: field
    expect(response.status).to eq(200)
  end
end
Run Code Online (Sandbox Code Playgroud)

但我有一个错误

Failure/Error: get :show, id: field

 ArgumentError:
   unknown keyword: id
Run Code Online (Sandbox Code Playgroud)

怎么解决?

ruby rspec ruby-on-rails rspec-rails ruby-on-rails-5

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

从Sinatra访问标题

我试图访问sinatra过滤器中的标头.我的请求包括标题"HTTP_AUTH",但我无法访问它.我的过滤器是

before do
    halt 403 unless request['HTTP_AUTH'] == 'test'
end
Run Code Online (Sandbox Code Playgroud)

它从我的机架测试中正常工作.

browser.get '/mypath', "CONTENT_TYPE" => "application/json", "HTTP_AUTH" => 'test'
Run Code Online (Sandbox Code Playgroud)

但是当我从其他来源尝试时,我无法访问它.如果我puts request.env可以看到令牌在请求中,但我无法访问它.

"HTTP_CONNECTION"=>"close", 
"HTTP_AUTH"=>"test", 
"HTTP_ACCEPT"=>"application/json", 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ruby sinatra http-headers

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

如何正确捕获控制器操作中的异常?

有以下代码:

def index
  @posts = User.find_by(login: params[:user_id]).posts
end
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,如果没有具有某些登录的用户(nil指针异常),则此代码可以生成异常.如何捕获此异常并正确处理?我知道如何在Ruby中捕获异常,但我想知道如何以良好的Rails风格进行操作.在不同的控制器中可能会出现同样的问题 - 可能是我应该创建一个动作包装器,捕获异常并呈现500错误?

ruby ruby-on-rails

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

Rails app:需要bootstrap vs require bootstrap-sprockets

添加之间的相应差异是什么?

//= require bootstrap-sprockets
Run Code Online (Sandbox Code Playgroud)

//= require bootstrap
Run Code Online (Sandbox Code Playgroud)

到application.js?

文件说:

bootstrap-sprockets提供单独的Bootstrap Javascript文件(例如alert.js或dropdown.js),而bootstrap提供包含所有Bootstrap Javascripts的连接文件

有人提供比其他人更好的表现吗?

javascript jquery ruby-on-rails twitter-bootstrap bootstrap-sass

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

使用http.request在Ruby on Rails中使用EOFError(文件末尾)

我想获取json表单url:

uri = URI.parse("http://84.38.185.251:9262/send")

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)

response = http.request(request)

response.code             # => 301
response.body             # => The body (HTML, XML, blob, whatever)
response["cache-control"] # => public, max-age=2592000
puts response.body
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:`EOFError(文件结束):app/controllers/sensors_controller.rb:35:在sensinfo'

sensors_controller.rb:35:

response = http.request(request)
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

ruby get ruby-on-rails http

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

rails console和bundle console之间有什么区别?

任何人都可以解释我或给我一个资源,我可以学习rails控制台和捆绑控制台之间的差异?有没有办法在irb中自动加载所有宝石而不是require gem?

ruby-on-rails

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

使用sed在大括号中提取子字符串

我现在有一个字符串如下:

integration@{Wed Nov 19 14:17:32 2014} branch: thebranch
Run Code Online (Sandbox Code Playgroud)

这包含在一个文件中,我解析了这个字符串.但是我想要括号之间的值{Wed Nov 19 14:17:32 2014}

我对Sed没有经验,说实话我发现它有点神秘.

到目前为止,我已经设法使用以下命令,但输出仍然是整个字符串.

我究竟做错了什么?

sed -e 's/[^/{]*"\([^/}]*\).*/\1/'
Run Code Online (Sandbox Code Playgroud)

bash sed

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

Ruby Date 1个月前来到String

我需要在Ruby中计算从今天起1个月的日期并将其转换为String以下格式:

yyyy-dd-mmThh:MM:ss(例如2014-08-26T00:00:00)

我试过了:(DateTime.now - Date.today.prev_month).to_datetime.strftime("%FT%T")但是我得到的方法不存在异常.

ruby date

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

Rails airbrake undefined方法

我正在运行我的rails应用程序,它工作正常,直到昨天,但今天当我运行rails服务器它给我这个错误.虽然我的空气制动器也没有任何错误
[airbrake.rb]

Airbrake.configure do |config|
  config.api_key = APP_CONFIG.airbrake.api_key
  config.host    = APP_CONFIG.airbrake.host
  config.port    = APP_CONFIG.airbrake.port
  config.secure  = config.port == 443
end
Run Code Online (Sandbox Code Playgroud)


undefined method `api_key=' for #<Airbrake::Config:0x000000073fa1e0> (NoMethodError)
  from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/airbrake-ruby-1.0.0/lib/airbrake-ruby.rb:98:in
Run Code Online (Sandbox Code Playgroud)

configure' from /home/techbirds/icare-master/config/initializers/airbrake.rb:1:in 'from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in load' from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:inblock in load'from /home/techbirds/.rvm/宝石/红宝石2.2.3 /宝石/ activesupport-

ruby-on-rails airbrake

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

Dotenv多行变量

我正在使用dotenv.

用于加载环境变量的Ruby gem .env.

我的.env文件中是否可以有多行变量?

例如

SOMETHING_CERTIFICATE="-----BEGIN CERTIFICATE-----
JSDFALDAFSSKLABVCXZLV2314IH4IHDFG9AYDF9DSSDF82QWEIWFHDSSD8SADF0=
-----END CERTIFICATE-----"
Run Code Online (Sandbox Code Playgroud)

^具有上述只是在该中间行抛出一个错误,好像它不是字符串的一部分,我正在尝试创建一个格式不正确的变量.

ruby bash shell ruby-on-rails

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