2012-06-03 6 views
0

Я стараюсь, чтобы выровнять строку в виде рельсов с помощью символа колодки.Ruby On Rails ljust (5, '.') Не работает

Следующая не работает:

<%= menu_items.description.ljust(5,".")%> 

Ни делает это:

<%= menu_items.description.to_s.ljust(5,".")%> 

Просто бездельничать и попытаться получить что-то я нашел следующие работы.

<%= menu_items.description.length.to_s.ljust(5,".")%> 

Он печатает длину, преобразованную в строку, и добавляет символы пэда. Что дает? Как сделать первый отрывок работы?

ответ

1

следующие работы, потому что .length дает вам ряд, вероятно, ноль, а затем добавляет ....

<%= menu_items.description.length.to_s.ljust(5,".")%> 

Что вы получаете, когда вы просто делаете это:

<%= menu_items.description %> 

Look Например, menu_items - это массив. Попробуйте

<% menu_items.each do |menu_item| %> 
    <%= menu_item.description.ljust(5,".") %> 
<% end %> 

Кроме того, если он не является массивом, то .. будет добавлен, чтобы сделать его общая длина 5. Если описание больше, он не будет делать ничего.

+0

Да, menu_items - это массив, и я повторяется точно так, как показано. Оказывается, вторая часть вашего ответа правильная, когда я ударяю ljust до 100, я получаю результат, который я хочу. Есть ли способ, который я могу использовать для добавления символа после описания? D – ctilley79

+0

Число символов будет зависеть от того, как долго будет строка описания. Чем короче это описание, тем больше символов пэдов мне понадобится, и наоборот. – ctilley79

+0

Обязательно: попробуйте menu_item.description + («X» * n_times), где X - символ, а n_times - количество символов, которое вы хотите добавить. – Anil

Смежные вопросы