Как генерироватьс рубиновой интерполяцией? - PullRequest
0 голосов
/ 25 сентября 2011

Мне нужно сгенерировать идентификатор html, используя некоторый код .erb. В частности, я хочу использовать индекс строки и столбца ячейки в прямоугольном массиве (составленном из таблицы ячеек). У меня есть метод cell.web_id, который создает строку таким образом:

"r#{row_index}_c#{column_index}", 

так, чтобы ячейка (2,3) выдала

"r2_c3".  

Пока все хорошо.

Теперь о странной части. Я не понял, как обернуть результат web_id в двойные кавычки, необходимые для правильного определения атрибута. Что бы я ни пытался, я всегда получаю:

<span class="cell" id=&quot;r1_c1&quot; >

Эта форма не работает.

Итак, как мне получить эту форму:

<span class="cell" id="r2_c3" >

Я знаю, что это легко, если вы знаете правильное заклинание, но у меня его нет.

Ответы [ 3 ]

1 голос
/ 25 сентября 2011

Попробуйте:

<span class="cell" id="<%="r#{row_index}_c#{column_index}"%>" >

ИЛИ

<span class="cell" id="r<%=row_index%>_c<%=column_index%>" >

ИЛИ

<span class="cell" id="<%=foo_span_id(row_index, column_index)%>" >

Где foo_span_id это пользовательский вспомогательный метод

0 голосов
/ 25 сентября 2011

Вместо двойных кавычек, почему бы вам не попробовать одинарные кавычки?(это обычно то, что я делаю в подобных ситуациях).

Таким образом, ваш код будет

"'r#{row_index}_c#{column_index}'"

, и ваш HTML также необходимо будет слегка изменить на одинарные кавычки

<span class='cell' id='r2_c3'; >
0 голосов
/ 25 сентября 2011

"\"r#{row_index}_c#{column_index}\"".html_safe

(apidock docs) (в основном бесполезно, но для полноты включено:)

...