Вот код:
def generate_link(campaign_id)
source = self.find(campaign_id).source
params = {}
if source.sub1 != ''
params[:sub1] = @source.sub1
end
if source.sub2 != ''
params[:sub2] = @source.sub2
end
if source.sub3 != ''
params[:sub3] = @source.sub3
end
if source.sub4 != ''
params[:sub4] = @source.sub4
end
if source.sub5 != ''
params[:sub5] = @source.sub5
end
if source.sub6 != ''
params[:sub6] = @source.sub6
end
@link = Settings.tds.url + campaign_id + (params.present? ? ('?' + params.to_query) : '')
end
Я просто еще плохо знаю такие средства на руби. Но я бы сделал как -
Объявил переменную (либо из Settings ее вытащил)
subs = [sub1, sub2, sub3, sub4, sub5, sub6]
Потом для каждого бы сделал что-то подобное, в стиле php::array_map() и получил бы новый массив, в зависимости от наличия source.sub1-6
а как бы тут сделали подобный код люди, которых улыбает мой код? :)
PS: "рублю" около недельки всего, так что не ругайтесь