Действительно кажется наиболее вероятным, что в поле p.telephone
есть какие-то случайные пробелы. Я делаю что-то похожее на вас с Prawn/Rails, поэтому я просто перепробовал столько способов, сколько мог придумать, чтобы заставить его не правильно выравниваться по правому краю, и вставка пробела в поле была единственным способом воспроизвести вашу проблему .
Даже если в данном случае это не ваша конкретная проблема, возможно, будет хорошей идеей удалить пробелы из ваших телефонных номеров (и, по сути, и из других полей) перед тем, как вы их визуализируете – предполагая, что это является полем формы, вы можете ожидать, что какой-то пользователь случайно добавит пробелы в конце. Вы можете сделать это в своем PDF-коде, например:
text "#{p.telephone.strip}\n#{p.email.strip}\n#{p.url.strip}", :align => :right
или вы можете сделать это в своей модели, если хотите:
def telephone=(t)
write_attribute(:telephone, t.strip)
end
Лично мне нравится первый вариант (сделать это в коде просмотра PDF), потому что я бы предпочел хранить именно то, что вводит пользователь, и манипулировать его данными только при необходимости (при просмотре), но это имеет тенденцию загромождать посмотреть код немного.
person
drosboro
schedule
16.06.2013
p.telephone.length
? Соответствует ли он точной длине символа? - person Muntasim   schedule 12.06.2013