我正在尝试创建一个方法,在调用并给出参数时会相应地命名哈希值。
def message_info(number)
@browser.link(:data_class => 'home.conv.message.message_info').click
messageid = @browser.span(:data_class, 'home.conv.view_message_info.client_id').text
sender = @browser.span(:data_class, 'home.conv.view_message_info.sender_name').text
senderusername = @browser.span(:data_class, 'home.conv.view_message_info.sender_user_name').text
recipient = @browser.span(:data_class, 'home.conv.view_message_info.recipient_name').text
recipientusername = @browser.span(:data_class, 'home.conv.view_message_info.recipient_user_name').text
created = @browser.span(:data_class, 'home.conv.view_message_info.created').text
status = @browser.span(:data_class, 'home.conv.view_message_info.status').text
ttl = @browser.span(:data_class, 'home.conv.view_message_info.ttl').text
message_info_hash + number = {
'Message ID' => "#{messageid}",
'Sender Name' => "#{sender}",
'Sender Username' => "#{senderusername}",
'Recipient name' => "#{recipient}",
'Recipient Username' => "#{recipientusername}",
'Created' => "#{created}",
'Status' => "#{status}",
'TTL' => "#{ttl}"
}
end
答案 0 :(得分:0)
而不是尝试设置命名的局部变量(没有任何结果),而是将您的消息信息存储在哈希中,并使用number
作为密钥。
def initialize
@message_info = {}
end
def message_info(number)
# ...
@message_info[number] = { ... }
end
您也不需要将值插入字符串以对其进行字符串化。而不是:
'Message ID' => "#{messageid}"
使用:
'Message ID' => messageid.to_s