相关疑难解决方法(0)

从ruby字符串中提取最后n个字符

为了n从字符串中获取最后一个字符,我假设您可以使用

ending = string[-n..-1]
Run Code Online (Sandbox Code Playgroud)

但是如果字符串长度小于n字母,那么你就得到了nil.

有哪些变通方法?

背景:字符串是纯ASCII,我可以访问ruby 1.9.1,我使用的是Plain Old Ruby Objects(没有Web框架).

ruby string

103
推荐指数
7
解决办法
7万
查看次数

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 the same record
# hello this is a new record
# this is still record 2
# hello this is record 3 etc etc
# 
# …
Run Code Online (Sandbox Code Playgroud)

ruby object undefined

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

在Ruby中为什么不会`foo = true除非定义?(foo)`进行赋值?

这里发生了什么?两种形式"除非"之间的细微差别是什么?

> irb(main):001:0> foo = true unless defined?(foo)
=> nil 
irb(main):002:0> unless defined?(fooo) ; fooo = false ; end
=> false 
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby

14
推荐指数
2
解决办法
2224
查看次数

我在Ruby中的i = true和false是真的吗?

我在这里从根本上误解了Ruby吗?我已经写了大约2年的Ruby代码了,就在今天偶然发现了......

ruby-1.8.7-p249 > i = true and false
 => false 
ruby-1.8.7-p249 > i
 => true 
Run Code Online (Sandbox Code Playgroud)

有人能解释一下这里发生了什么吗?我确定这是规格,但这对我来说似乎有点直观......

ruby

13
推荐指数
2
解决办法
3697
查看次数

关于Ruby最重要的事情是什么?

我是这门语言的新手,我需要知道为了使用Ruby编程语言创建功能齐全的网站或Web应用程序,必须知道的最重要的事情是什么?

主要是带有Rake的Ruby on Rails和其他主要使用Rake的工具.

更新:我知道很多其他语言,如C++,Java,PHP,Perl等等....

更新2:这很棒......让他们来吧!

ruby rubygems ruby-on-rails

13
推荐指数
6
解决办法
4198
查看次数

为什么我不能在红宝石中做"如果为零"?

>> current_user.first_visit
=> 0
>> if current_user.first_visit
>> puts "test"
>> end
test
=> nil
Run Code Online (Sandbox Code Playgroud)

为什么打印测试?

ruby

10
推荐指数
2
解决办法
6605
查看次数

如果条件语句出现在表达式之前或之后,这是否重要?

对不起,如果这是一个愚蠢的问题,但我是一个C#家伙摸索着红宝石的方式..

在红宝石中,我注意到很多人这样做:

do_something(with params) if 1 = 1
Run Code Online (Sandbox Code Playgroud)

这和之间有什么区别(甚至是轻微的):

if 1 = 1 do_something(with params)
Run Code Online (Sandbox Code Playgroud)

还是为了更清晰而写的是同一件事?

ruby syntax conditional if-statement

8
推荐指数
2
解决办法
6520
查看次数

在rails中,复选框返回的值是多少?

如果选中"记住我"复选框,我想将cookie设置为1年后到期.

我有一个复选框表格输入,如:

<%= check_box_tag 'remember', '', false, :class => 'checkbox' %>
Run Code Online (Sandbox Code Playgroud)

发布后的价值是多少?

它是真/假或检查或1或?我在助手中将值设置为''.

ruby-on-rails

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

如何在Rails中启用Ruby警告?

我是这样做的test.rb:

def some_method
  p "First definition"
end

def some_method
  p "Second definition"
end

some_method
Run Code Online (Sandbox Code Playgroud)

当我打电话时ruby test.rb,打印Second definition(预期)

当我打电话时ruby -w test.rb,它打印Second definition(预期)打印警告test.rb:5: warning: method redefined; discarding old some_method

有没有办法在Rails中启用这些警告?(并将警告打印到控制台/日志文件)

为什么我要启用警告:例如,如果我无意中在控制器中重新定义了一个方法,那么我会通过查看打印到控制台/日志文件的警告来了解该问题.请看这里的例子.

ruby warnings ruby-on-rails

6
推荐指数
1
解决办法
1516
查看次数

Ruby:当'&&!(expr)'没有时,为什么'而不是'工作?

我的Rails应用程序中有一个if语句.我需要做一个基本的"if true and!false"检查.表达式定义为:

ActiveRecord::Base.connection.tables.include? 'settings' && !Settings.setting_is_set?('defaults_set')
Run Code Online (Sandbox Code Playgroud)

如果我把它作为我的表达式给if,那么if就不会触发.如果我在控制台中运行该表达式,我会得到错误.

现在,如果我将表达式修改为:

ActiveRecord::Base.connection.tables.include? 'settings' and not Settings.setting_is_set?('defaults_set')
Run Code Online (Sandbox Code Playgroud)

它应该返回true,并执行它的块.

所以问题是:为什么'表达式&&!表达式'不像'表达式而不是表达式'.这是我的理解&&和!应该和,而不是几乎直接对应.

我在这里错过了什么?

ruby ruby-on-rails

5
推荐指数
1
解决办法
3696
查看次数