Tag: ruby

如何在Rack应用程序中设置/获取会话变量?

use Rack::Session::Pool … session[:msg]=”Hello Rack” 编辑:单词会话似乎没有解决。 我在我的config.ru中包含了Session pool中间件,并尝试在ERB文件中设置一个变量(我正在使用Ruby Serve)并且它抱怨“未定义的局部变量或方法`session’” 谢谢!

是否有可能在Ruby中识别别名方法?

通常在控制台内,我会查询一个对象 pp obj.methods.sort #or… pp (obj.methods – Object.methods).sort 在Ruby中,开发人员为方法提供别名是很常见的。 我想知道是否有一种识别别名的reflection方式,以便我可以显示别名方法,如… array.aliased_methods #=> {:collect => :map, …} 这有助于能够准确识别对象可以做多少事情。

处理在keyup事件上发生的javascript弹出窗口

我在HTML页面上有一个文本字段,用于检查您是否输入了1到365之间的值。如果用户输入的值无效,如非数字字符或不在该范围内的值,则显示弹出。 我在watir wiki上看到有一个select_no_wait方法,用于在从列表中选择无效值时关闭弹出窗口。 处理keyup事件时弹出窗口的好方法是什么? 我是否需要按照select_no_wait方法的实现方式继续进行,或者我们是否可以启动一个不同的进程来解除调用set方法时可能出现的弹出窗口。 在Javascript中带有validate函数的HTML文件的示例示例如下: var num = 0 function validate(e) { var charPressed = String.fromCharCode(e.keyCode); if(charPressed >= ‘0’ && charPressed<= '9') { num = parseInt(document.getElementById('foo').value); if ((document.getElementById('foo').value).length 365 || num==0)) alert (“Values can only be from to 1 to 365”); } else { alert(“Invalid character entered”); document.getElementById(‘foo’).value = “”; } } Sample 我真的很感激关于这个问题的任何指示。 […]

Rails 3安装错误:“@cert_chain的值无效”

我正在尝试在新的OS X Snow Leopard机器上安装Rails 3(安装了dev工具),当我sudo gem install rails ,我收到以下错误: ERROR: While executing gem … (Gem::FormatException) builder-2.1.2 has an invalid value for @cert_chain 更新失败。 谁看过这个吗? 我为’cert_chain’编辑了builder-2.1.2目录,但找不到任何线索。 Ruby版本是1.8.7 OS X 10.6.6 谢谢!

使用Ruby扫描方法捕获组不能按预期工作

我需要从多行字符串中获取一组浮点数(正数和负数)。 例如: -45.124, 1124.325等 这是我做的: text.scan(/(\+|\-)?\d+(\.\d+)?/) 虽然它在regex101上工作正常(捕获组0匹配我需要的所有东西),但它在Ruby代码中不起作用。 任何想法为什么会发生以及如何改进?

运行’__rvm_make install’时出错

我是编程尝试使用RVM添加Ruby 2.2并接收以下错误的新手。 我运行rvm得到稳定并尝试重新安装,但得到相同的错误。 $ rvm reinstall ruby-2.2.0 Searching for binary rubies, this might take some time. No binary rubies available for: osx/10.10/x86_64/ruby-2.2.0. Continuing with compilation. Please read ‘rvm help mount’ to get more information on binary rubies. Checking requirements for osx. Installing requirements for osx. Updating system….. Installing required packages: autoconf, automake, libtool, pkg-config, libyaml, […]

我如何对我的默认范围进行rspec测试

我的模型有default_scope(:order =>’created_at’)我的测试(rspec,factory girl,shoulda等)是: require ‘spec/spec_helper.rb’ describe CatMembership do context “is valid” do subject { Factory.build(:cat_membership) } it { should be_valid } it { should belong_to :cat} it { should belong_to :cat_group} it { should have_db_column(:start_date)} it { should have_db_column(:end_date)} end end

如何有力地解析格式错误的CSV?

我正在处理政府来源(FEC,州选民数据库等)的数据。 它的格式不一致,这会以各种令人愉快的方式破坏我的CSV解析器。 它是外部采购和权威的。 我必须解析它,我不能重新输入,在输入时validation等。 就是这样; 我不控制输入。 属性: 字段包含格式错误的UTF-8(例如Foo \xAB bar ) 一行的第一个字段指定已知集合中的记录类型。 知道记录类型,您知道有多少字段及其各自的数据类型,但直到您知道。 文件中的任何给定行可能使用带引号的字符串( “foo”,123,”bar” )或不带引号( foo,123,bar )。 我还没有遇到任何在给定行中混合的地方(即”foo”,123,bar ),但它可能在那里。 字符串可以包括内部换行符,引号和/或逗号字符。 字符串可以包括逗号分隔的数字。 数据文件可能非常大(数百万行),因此需要仍然相当快。 我正在使用Ruby FasterCSV(在1.9中仅称为CSV),但这个问题应该与语言无关。 我的猜测是,解决方案需要使用明确的记录分隔符/引号字符(例如ASCII RS,STX)进行预处理替换。 我已经在这里开始了一点但它并不适用于我得到的一切。 如何可靠地处理这种脏数据? ETA:以下是单个文件中可能包含的简化示例: “此”, “是”,123, “一”, “正常”, “线” “行”,“带”“内部”,“引用” “短线”,“有 一个 “内部引用”,1个逗号和 换行符” un“quot”ed,text,with,1,2,3,numbers “引用”, “号码”, “系列”, “1,2,3” “无效\ xAB utf-8”

Ruby on Rails:如何让多个提交按钮转到不同的方法(可能带有with_action?)

所以.. ‘save’ %> ‘library’ %> 然后在我的控制器中: with_action do |a| a.save do end a.library do end end 问题是只有一个动作被调用…对于两个submit_tags都是一样的…任何想法为什么? 或者我如何获得两个按钮将表单提交给两种不同的方法?

Ruby在while循环中忘记了局部变量?

我正在处理一个基于记录的文本文件:所以我正在寻找一个构成记录开头的起始字符串:没有记录结束标记,所以我使用下一条记录的开头来划分最后的记录。 所以我已经构建了一个简单的程序来实现这一点,但是我看到一些让我感到惊讶的事情:看起来Ruby似乎忘记了局部变量 – 或者我发现了编程错误? [虽然我不认为我有:如果我在循环之前定义变量’message’我没有看到错误]。 这是一个简单的示例,其中包含示例输入数据和注释中的错误消息: flag=false # message=nil # this is will prevent the issue. while line=gets do if line =~/hello/ then if flag==true then puts “#{message}” end message=StringIO.new(line); puts message flag=true else message << line end end # Input File example: # hello this is a record # this is also part of […]