如何在Ruby中拆分字符串变量

时间:2015-06-18 17:15:49

标签: ruby-on-rails ruby

我有这个迷你功能:

def dummy_string_management(val)
    parts = val.split(' ')
    return "#{parts[0]}" + " -done!"
end

我正在调用这样的函数:

myString = "This is a string"
<%= dummy_string_management(myString) %>

但是我收到了这个错误:

undefined method `split' for This is a string

如何拆分作为函数参数发送的变量?

1 个答案:

答案 0 :(得分:6)

使用IRB测试您的代码:

>> def dummy_string_management(val)
|        parts = val.split(' ')
|        return "#{parts[0]}" + " -done!"
|    end
:dummy_string_management
>> dummy_string_management('foo bar')
"foo -done!"

因此,代码表现正常。 (它没有写好Ruby,但这是一个不同的问题。)

您无法使用

myString = "This is a string"
<%= dummy_string_management(myString) %>

在视图/ ERB模板中。行myString = "This is a string"不会被解释为您所期望的,也不应该收到您所说的错误消息。您至少需要在<% ... %>内定义变量,但实际上应该在控制器中进行,并且dummy_string_management(myString)的结果应该分配给在视图中直接访问的变量。

就像我们如何编写你的方法一样:

def dummy_string_management(val)
    val.split.first + ' -done!'
end

如何解决这个问题。