纯粹出于好奇,是否有更优雅的方法来简单地获取字符串中第一个=符号后的子串?以下作品回馈name=bob:
string = "option=name=bob"
string[string.index('=')+1..-1]
Run Code Online (Sandbox Code Playgroud)
它只是感觉不是非常Ruby.这也有效:
string.split('=', 2)[1]
Run Code Online (Sandbox Code Playgroud)
再次,不是很优雅,特别是因为split做了额外的不必要的工作.正则表达式是答案吗?我觉得这对于在字符串中查找单个字符位置的简单性来说有点过分:
string.match('=(.*)')[1]
Run Code Online (Sandbox Code Playgroud)
我不得不想象这是一种极为常见的情况,是不是有string.after('=')类型方法?Ruby on Rails是否提供类似这样的事情,因为在网络上使用这种操作的频率?
更新:忘记在找不到符号时提及情况,nil或者返回空字符串.但是正则表达式机制和.index方法需要额外检查(因此不那么优雅).
如何在Rails 3.1中的引擎中提供资产?它们应该放在哪里,是否可以自动包含在内?
我可以用:
File.open('/dev/null', 'w')
Run Code Online (Sandbox Code Playgroud)
在Unix系统上,但如果有一种Ruby方法来实现这一点,我想使用它.只是寻找一个IO流,立即"破坏"所有写入,有点像一个空对象.
如果我使用像capybara-webkit或selenium这样的支持javascript的驱动程序,我如何填充Capybara中的CKEditor区域?
我需要一个测量Ruby下测试覆盖率的工具.
我试过rcov,但无法在Windows,Cygwin或Ubuntu下安装它.
哪些程序(不一定是免费的)计算Ruby中测试的分支和/或行覆盖率并使用Ruby on Rails?
我的朋友正在建造一个供不同的独立医疗单位使用的产品.
该数据库存储了在不同时间进行的大量测量,如温度,血压等...
让我们假设这些都是在一个名为表中所保持exams的列temperature,pressure等...(以及id,patient_id和timestamp).大多数测量都存储为浮点数,但有些是其他类型(字符串,整数......)
虽然这些测量中的许多都是由他们的产品处理的,但它需要允许不同的医疗单位记录和处理其他自定义测量.一个非常漂亮的用户界面允许管理员编辑这些海关字段,指定其名称,类型,可能的值范围等...
他不确定如何存储这些自定义字段.
他朝一个单独的表倾斜(比如一台custom_exam_data与像场exam_id,custom_field_id,float_value,string_value,...)
我担心这会使搜索更难以实现且效率更低.
我倾向于直接修改考试表(同时避免使用某些方案冲突列名称,例如使用下划线为所有自定义字段添加前缀或将其命名为custom_1,...)
他担心动态修改数据库并为每个医疗单位设置不同的模式.
希望一些有更多经验的人可以在这个问题上权衡.
笔记:
他正在使用Ruby on Rails,但我认为这个问题几乎与框架无关,只是因为他只是在SQL数据库中寻找解决方案.
我简化了这个问题,因为自定义字段需要可用于多个表,但我相信这并不会影响我们的方向.
(已添加)一个非常通用的报告模块需要搜索,排序,生成此数据的统计信息等,因此需要将此数据存储在相应类型的列中
(已添加)将过滤用户输入,标准字段以及自定义字段.例如,将在给定范围内检查数字(不能具有-12或+444的温度)等等.因此,转换为适当的SQL类型不是问题.
我为我的Rails安装设置了一个数据库,并设置了一些迁移.我希望能够将我的数据库重置为没有表/约束/等等,但是在不知道迁移次数或第一次迁移的时间戳的情况下找不到合理的方法.我看到以下是我的选择:
rake db:migrate:resetrake db:migrate:down VERSION=20090701154839 其中20090701154839是与第一次迁移相关联的时间戳rake db:rollback STEP=15 那里有15次迁移的问题db:migrate:reset在于,它第一次下降到数据库(它db:drop,db:create话db:migrate).
问题db:migrate:down是我不想编码开头的VERSION.
问题db:rollback是我不知道它回到开头的步骤数.
我有什么选择?
我有一个在activeRecord类上的ruby方法(停用!).但是,我似乎无法找到声明该方法的位置.
这个项目有很多开发人员,所以它可以在任何地方.有一个停用!在一个不相关的类上,但它似乎没有被调用.
任何想法如何找到一个instace的所有超类,或在哪里找到停用的代码!?
我想在javascript对象中使用函数作为键.以下工作,至少在Chrome中:
var registry = {};
function Foo(){ };
function Bar(){ };
registry[Foo] = 42;
registry[Bar] = 43;
alert(registry[Foo] + " < " + registry[Bar]);
Run Code Online (Sandbox Code Playgroud)
这是否符合标准?它支持哪些浏览器?