我有这个简单的帮手:
def printe_result(data)
a_var = ('<a href="http://'+data.a_value+'>A</a>' unless (data.a_value.nil? || data.a_value.empty?))
b_var = ('<a href="http://'+data.b_value+'>B</a>' unless (data.b_value.nil? || data.b_value.empty?))
c_var = ('<a href="http://'+data.c_value+'>C</a>' unless (data.c_value.nil? || data.c_value.empty?))
return ...
end
a_value
,b_value
,c_value
我从数据库中获取。如果值是字符串,我想将它们保存到相应的变量中,然后所有变量返回为一个字符串,其值以逗号分隔,例如:
"<a href=http://a>A</a>, <a href=http://b>B</a>, <a href=http://c>C</a>"
如果变量存在,我怎样才能合并?
答案 0 :(得分:4)
def printe_result(data)
{ 'A' => data.a_value, 'B' => data.b_value, 'C' => data.c_value }.map do |name, val|
"<a href='http://#{val}'>#{name}</a>" unless val.blank?
end.compact.join(',')
end
答案 1 :(得分:2)
像
这样的东西 [[a_value,'A'],[b_value,'B'],[c_value,'C']].select {|(value, label)| !value.blank?}.
map {|(value, label)| %q[<a href="http://#{value}">#{label}</a>]}.join(',')
应该做的诀窍:使用select消除带有空白标签的对,map将标签转换为所需的文本并加入以将字符串连接在一起。
答案 2 :(得分:0)
我希望我的问题正确 - 您可以使用defined?(variable_name)
方法检查是否已定义变量。
我希望这有帮助!