use*_*140 -5 ruby ruby-on-rails
我有这个迷你功能:
def dummy_string_management(val)
parts = val.split(' ')
return "#{parts[0]}" + " -done!"
end
Run Code Online (Sandbox Code Playgroud)
我正在调用这样的函数:
myString = "This is a string"
<%= dummy_string_management(myString) %>
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
undefined method `split' for This is a string
Run Code Online (Sandbox Code Playgroud)
如何拆分作为函数参数发送的变量?
使用IRB测试代码:
>> def dummy_string_management(val)
| parts = val.split(' ')
| return "#{parts[0]}" + " -done!"
| end
:dummy_string_management
>> dummy_string_management('foo bar')
"foo -done!"
Run Code Online (Sandbox Code Playgroud)
所以,代码表现正常.(这不是很好的Ruby,但这是一个不同的问题.)
你不能使用
myString = "This is a string"
<%= dummy_string_management(myString) %>
Run Code Online (Sandbox Code Playgroud)
在视图/ ERB模板中.该行myString = "This is a string"不会按您的预期解释,也不会得到您说的错误消息.您至少需要在内部定义变量,<% ... %>但实际上应该在控制器中定义变量,并且应该将结果dummy_string_management(myString)分配给在视图中直接访问的变量.
就像我们如何编写你的方法一样:
def dummy_string_management(val)
val.split.first + ' -done!'
end
Run Code Online (Sandbox Code Playgroud)
如何运作留给你弄清楚.
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |