我有这个迷你功能:
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
如何拆分作为函数参数发送的变量?
答案 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
如何解决这个问题。