我想从模型开始将现有的rails应用程序从rspec切换到minitest.因此我创建了一个文件夹test
.在那里我创建了一个名为minitest_helper.rb
以下内容的文件:
require "minitest/autorun"
ENV["RAILS_ENV"] = "test"
Run Code Online (Sandbox Code Playgroud)
和models
包含的文件夹forum_spec.rb
:
require "minitest_helper"
describe "one is really one" do
before do
@one = 1
end
it "must be one" do
@one.must_equal 1
end
end
Run Code Online (Sandbox Code Playgroud)
现在我可以运行ruby -Itest test/models/forum_spec.rb
以下结果:
Loaded suite test/models/forum_spec
Started
.
Finished in 0.000553 seconds.
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
Test run options: --seed 12523
Run Code Online (Sandbox Code Playgroud)
真好.但是现在我想要加载环境并将以下行添加到minitest_helper.rb
(从rspec的等效文件中复制):
require File.expand_path("../../config/environment", __FILE__)
Run Code Online (Sandbox Code Playgroud)
现在我再次运行它,结果如下:
Loaded suite test/models/forum_spec
Started
Finished in …
Run Code Online (Sandbox Code Playgroud) 我试图捆绑安装,但它显示上述错误或调试程序..请从终端找到详细的错误
Installing debugger-linecache (1.1.1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/ruby/bin/ruby extconf.rb
checking for vm_core.h... no
checking for vm_core.h... no
Makefile creation failed
**************************************************************************
No source for ruby-1.9.2-p0 provided with debugger-ruby_core_source gem.
**************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog …
Run Code Online (Sandbox Code Playgroud) 我使用的是Ruby 1.9.2,Rails 3.0.4/3.0.5和Phusion Passenger 3.0.3/3.0.4.我的模板是用HAML编写的,我使用的是MySQL2 gem.我有一个控制器动作,当传递一个具有特殊字符的参数,如变音符号,给我以下错误:
ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT)
Run Code Online (Sandbox Code Playgroud)
该错误指向我的HAML模板的第一行,其中包含以下代码:
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
我的理解是,这是因为我有一个UTF-8字符串与ASCII-8BIT字符串连接,但我不能在我的生活中找出ASCII-8BIT字符串是什么.我已经检查过动作中的参数是使用UTF-8编码的,我已经添加了一个编码:UTF-8声明到HAML模板的顶部和ruby文件,我仍然得到这个错误.我的application.rb文件中也有一个config.encoding = "UTF-8"
声明,以下所有结果都是UTF-8:
ENV['LANG']
__ENCODING__
Encoding.default_internal
Encoding.default_external
Run Code Online (Sandbox Code Playgroud)
这是踢球者:我无法在开发或生产中使用独立乘客或杂种在我的Mac-OSX上本地重现此结果.我只能在linux上运行nginx + passenger的生产服务器上重现它.我已经在生产服务器的控制台中验证了后面提到的命令也都是UTF-8.
您是否遇到过同样的错误?您是如何解决的?
我想将一个rails应用程序从Ruby 1.8.7移植到1.9.2.有些文件在字符串和注释中包含ä/ö/ü等元音符.文件保存为UTF-8,但开头没有BOM(字节顺序标记).
您可能知道,Ruby 1.9拒绝解析这些文件,给出了一个invalid multibyte char (US-ASCII)
我在谷歌搜索和阅读很多,但唯一的解决方案似乎是
# coding: utf-8
在每个文件的开头.
我选择的编辑器(gEdit)似乎没有插入BOM.我还读到有一个BOM是不好的做法,因为它可能会破坏一些编辑器,如果你想使用shebang符号,它也会破坏shell脚本.
编辑:BOM打破了Ruby 1.8.7解析器,syntax error, unexpected kEND, expecting $end (SyntaxError)
为文件提供了一个!
我尝试使用ruby -Eutf-8强制外部编码:utf-8但是在调用rake时这似乎被忽略了(我试过:/home/malte/.rvm/gems/ruby-1.9.2-p180/bin/rake测试).
所以我的问题是:
由于RVM无论如何都是从源代码构建ruby 1.9,是否有构建选项或修补程序将默认编码从US-ASCII更改为UTF-8?
我快速查看了源代码,但找不到默认设置的行(我不是C专家,很难).
我正试图用rvm设置乘客.我一直收到这个错误
您的RVM包装器脚本太旧了.请先运行'rvm update --head && rvm reload && rvm repair all'来更新它们.
我做到了同样的问题
- GNU C++编译器...在/ usr/bin/g ++中找到
- 发现了支持SSL的卷曲开发标题
- 找到OpenSSL开发头文件
- 找到了Zlib开发头文件
- 发现了Ruby开发头文件
- OpenSSL支持Ruby ...找到了
- RubyGems ......找到了
您的RVM包装器脚本太旧了.
请先运行'rvm update --head && rvm reload && rvm repair all'来更新它们.
我正在使用Fedora 14,Ruby 1.9.2,Rails 3.0.7 RVM是为多用户安装的
当我'乘客开始'时,我也会收到此错误
无法执行'/home/antarr/.passenger/standalone/3.0.7-x86_64-ruby1.9.2-linux-gcc4.5.1-1002/support/helper-scripts/prespawn http://0.0.0.0:3000 ':权限否认(13)
我正在尝试使用默认的Rails日期,时间和日期时间字段与Capybara构建日期选择器.我正在使用该within
方法来查找字段的选择框,但是当我使用xPath查找正确的框时,它会离开within
范围并在元素的页面上找到第一个匹配项.
这是我正在使用的代码.我正在测试的页面有2个日期时间字段,但由于此错误,我只能让它更改第一个.目前我有一个带有id的div容器,它包含了datetime字段,但我确实打算通过标签切换代码来查找.
module Marketron
module DateTime
def select_date(field, options = {})
date_parse = Date.parse(options[:with])
year = date_parse.year.to_s
month = date_parse.strftime('%B')
day = date_parse.day.to_s
within("div##{field}") do
find(:xpath, "//select[contains(@id, \"_#{FIELDS[:year]}\")]").select(year)
find(:xpath, "//select[contains(@id, \"_#{FIELDS[:month]}\")]").select(month)
find(:xpath, "//select[contains(@id, \"_#{FIELDS[:day]}\")]").select(day)
end
end
def select_time(field, options = {})
require "time"
time_parse = Time.parse(options[:with])
hour = time_parse.hour.to_s.rjust(2, '0')
minute = time_parse.min.to_s.rjust(2, '0')
within("div##{field}") do
find(:xpath, "//select[contains(@id, \"_#{FIELDS[:hour]}\")]").find(:xpath, "option[contains(@value, '#{hour}')]").select_option
find(:xpath, "//select[contains(@id, \"_#{FIELDS[:minute]}\")]").find(:xpath, "option[contains(@value, '#{minute}')]").select_option
end
end
def select_datetime(field, options = {})
select_date(field, options)
select_time(field, …
Run Code Online (Sandbox Code Playgroud) 当我尝试启动我的Rails服务器时,我收到以下错误:
我正在使用ruby 1.9.2
=> Booting WEBrick
=> Rails 3.1.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
/Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:318:in `log_app_names': undefined method `join' for nil:NilClass (NoMethodError)
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/agent/agent.rb:439:in `start'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:83:in `init_plugin'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/newrelic_rpm-3.4.2/lib/newrelic_rpm.rb:36:in `block in <class:Railtie>'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:30:in `run'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `each'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/application.rb:96:in `initialize!'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/railties-3.1.8/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/toptier/Desktop/Proyectos/CursoIngles/config/environment.rb:5:in `<top (required)>'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in `require'
from /Users/toptier/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.8/lib/active_support/dependencies.rb:240:in …
Run Code Online (Sandbox Code Playgroud) 与https://example.com/上的跨站点资源关联的 cookie设置为没有该SameSite
属性。它已被阻止,因为 Chrome 现在仅在设置了SameSite=None
和 的情况下才提供具有跨站点请求的 cookie Secure
。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息。
请告诉我如何设置 SameSite cookie 属性。提前致谢。
我刚刚将一个项目升级到Ruby 1.9.2,并且以下行使用'undefined method`copy'为File:Class'崩溃了应用程序
File.copy(animage.image.path(:export), destfile)
Run Code Online (Sandbox Code Playgroud)
我在这个模块中加载了以下库
require 'zip/zipfilesystem'
require 'iconv'
require 'net/ftp'
require 'fileutils'
Run Code Online (Sandbox Code Playgroud) 我有一个名为Category和其他模型产品的模型.他们有has_many和belongs_to关系.但在我看来代码
<p><%= f.collection_select(:product, :category_id, Category.all, :id, :name)%>
Run Code Online (Sandbox Code Playgroud)
给了我
undefined method `merge' for :name:Symbol
Run Code Online (Sandbox Code Playgroud)
有什么线索有什么问题吗?
ruby-1.9.2 ×10
ruby ×4
capybara ×1
compilation ×1
cucumber ×1
encoding ×1
fedora ×1
form-helpers ×1
minitest ×1
newrelic ×1
passenger ×1
ruby-1.9.3 ×1
rvm ×1