Sup*_*meA 0 ruby arrays string
我在rails模型中有一个对象,可以是字符串或数组.在我看来,我有以下几点:
<% current_user.transaction[:account_name].each do |name| %>
Run Code Online (Sandbox Code Playgroud)
如果对象account_name是字符串,则会引发错误.
我想运行这样的东西:
<% current_user.transaction[:account_name].each, if sting? each_line do |name| %>
Run Code Online (Sandbox Code Playgroud)
使用each_line如果对象是一个字符串,但使用each,如果它是一个数组.我不确定这是否是最佳解决方案.无论对象是数组还是字符串,有何方法可以使其工作?
您可以使用splat运算符.例如:
str = "hello"
arr = ["hi"]
[*str]
# => ["hello"]
[*arr]
# => ["hi"]
Run Code Online (Sandbox Code Playgroud)
所以你的代码变成了
[*current_user.transaction[:account_name]].each do |name|
Run Code Online (Sandbox Code Playgroud)