collect を使用して、必要な結果を得ることができます。またはマップ!配列をインプレースで変更するには:
https://stackoverflow.com/a/5646754/643500
x = %w(hello there world)
x.collect! { |element|
(element == "hello") ? "hi" : element
}
puts x
編集:
したがって、コードの場合は次のようになります
@dis.collect! do |d|
temp = d.notes.inspect
#Now check the length of the temp variable
temp.length > 25 ? temp = temp[0,25] : temp = nil
d.notes = temp
end
編集:
ここで機能した完全なコード。ゲッターとセッターを含む :notes があることを確認してください。cattr_accessor、attr_accessor、attr_accessible について読む
class TestClass
@note
def initialize note
@note = note
end
def get_note
@note
end
def set_note note
@note = note
end
end
@dis = Array.new
@dis << TestClass.new("yo yo")
@dis << TestClass.new("1 2 3 4 5 6 7 8 9 10 6 7 8 9 10 6")
@dis << TestClass.new("a b c")
@dis.collect! do |d|
temp = d.get_note.inspect
#Now check the length of the temp variable
d.get_note.inspect.length > 25 ? d.set_note(temp[0,25]) : d.set_note(nil)
end
puts "#{@dis}"