标签: ruby-1.9.2

MiniTest和Rails入门

我想从模型开始将现有的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)

ruby ruby-on-rails minitest ruby-1.9.2

16
推荐指数
1
解决办法
4356
查看次数

安装debugger-linecache时出错:错误:无法构建gem原生扩展

我试图捆绑安装,但它显示上述错误或调试程序..请从终端找到详细的错误

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 ruby-on-rails-3.1

16
推荐指数
3
解决办法
1万
查看次数

ActionView :: Template :: Error(不兼容的字符编码:UTF-8和ASCII-8BIT)

我使用的是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.

您是否遇到过同样的错误?您是如何解决的?

ruby ruby-on-rails passenger ruby-on-rails-3 ruby-1.9.2

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

使Ruby 1.9将所有源文件视为UTF-8编码.(即使需要重新编译解释器)

我想将一个rails应用程序从Ruby 1.8.7移植到1.9.2.有些文件在字符串和注释中包含ä/ö/ü等元音符.文件保存为UTF-8,但开头没有BOM(字节顺序标记).

您可能知道,Ruby 1.9拒绝解析这些文件,给出了一个invalid multibyte char (US-ASCII)

我在谷歌搜索和阅读很多,但唯一的解决方案似乎是

  • 插入BOM或
  • 插入 # 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专家,很难).

encoding compilation ruby-1.9.2

15
推荐指数
1
解决办法
7511
查看次数

需要帮助使用RVM设置乘客

我正试图用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)

fedora rvm ruby-on-rails-3 ruby-1.9.2

12
推荐指数
1
解决办法
5131
查看次数

capybara - 使用xPath查找离开范围内

我正在尝试使用默认的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)

ruby cucumber capybara ruby-on-rails-3 ruby-1.9.2

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

由于新的遗留错误,Rails服务器无法启动

当我尝试启动我的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)

ruby-1.9.2 ruby-on-rails-3.1 newrelic

12
推荐指数
1
解决办法
1795
查看次数

如何将 SameSite 属性设置为“无”;在 Rails3.1.12 和 Ruby1.9.3 中安全

https://example.com/上的跨站点资源关联的 cookie设置为没有该SameSite属性。它已被阻止,因为 Chrome 现在仅在设置了SameSite=None和 的情况下才提供具有跨站点请求的 cookie Secure。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息。

请告诉我如何设置 SameSite cookie 属性。提前致谢。

ruby ruby-on-rails ruby-1.9.2 ruby-on-rails-3.1 ruby-1.9.3

12
推荐指数
3
解决办法
1万
查看次数

文件:类的未定义方法`copy'

我刚刚将一个项目升级到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)

ruby-1.9.2

10
推荐指数
1
解决办法
3424
查看次数

collection_select方法在Rails 3.1.1中给出错误

我有一个名为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)

有什么线索有什么问题吗?

form-helpers ruby-on-rails-3 ruby-1.9.2

10
推荐指数
1
解决办法
7377
查看次数