我有简单的动作节目
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)
怎么解决?
我试图访问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)
我究竟做错了什么?
有以下代码:
def index
@posts = User.find_by(login: params[:user_id]).posts
end
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,如果没有具有某些登录的用户(nil指针异常),则此代码可以生成异常.如何捕获此异常并正确处理?我知道如何在Ruby中捕获异常,但我想知道如何以良好的Rails风格进行操作.在不同的控制器中可能会出现同样的问题 - 可能是我应该创建一个动作包装器,捕获异常并呈现500错误?
添加之间的相应差异是什么?
//= 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
我想获取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)
我做错了什么?
任何人都可以解释我或给我一个资源,我可以学习rails控制台和捆绑控制台之间的差异?有没有办法在irb中自动加载所有宝石而不是require gem?
我现在有一个字符串如下:
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) 我需要在Ruby中计算从今天起1个月的日期并将其转换为String以下格式:
yyyy-dd-mmThh:MM:ss(例如2014-08-26T00:00:00)
我试过了:(DateTime.now - Date.today.prev_month).to_datetime.strftime("%FT%T")但是我得到的方法不存在异常.
我正在运行我的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)
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
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:inload' 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-
我正在使用dotenv.
用于加载环境变量的Ruby gem
.env.
我的.env文件中是否可以有多行变量?
例如
SOMETHING_CERTIFICATE="-----BEGIN CERTIFICATE-----
JSDFALDAFSSKLABVCXZLV2314IH4IHDFG9AYDF9DSSDF82QWEIWFHDSSD8SADF0=
-----END CERTIFICATE-----"
Run Code Online (Sandbox Code Playgroud)
^具有上述只是在该中间行抛出一个错误,好像它不是字符串的一部分,我正在尝试创建一个格式不正确的变量.
ruby ×6
bash ×2
airbrake ×1
date ×1
get ×1
http ×1
http-headers ×1
javascript ×1
jquery ×1
rspec ×1
rspec-rails ×1
sed ×1
shell ×1
sinatra ×1