Параметр bgcolor в Руби. Что это правильный способ сделать это?


<p style="background-color:#<%= debate.bg_color %>;" >

be_color - это метод дискуссии , который возвращает строку, как 45FFFF.

Хотя он делает то, что я хочу, это выглядит как очень плохая идея. Что бы быть лучший способ добиться этого? (Я очень новичок в Ruby и Rails. И новый-иш для веб-разработки в целом.)



319
4
задан 2 июня 2011 в 03:06 Источник Поделиться
Комментарии
3 ответа

встроенные стили-это плохая практика

более элегантный способ будет присвоить класс элемент на основе свойств дебаты, возможно, создавая помощником, если эта линия часто используется

6
ответ дан 2 июня 2011 в 05:06 Источник Поделиться

На основе ваших ограничений, я бы сказал, что это решение нормально. Если вы не хотите делать встроенные стили, хотя вы могли бы рассмотреть что-то наверняка как писать цветом в переменной JavaScript или в data-* атрибуты элемента дискуссии.

<script type="text/javascript">
var debateColor = '<%= debate.bg_color %>';
</script>

или решение данных:

<p class="debate" data-debate-color="<%= debate.bg_color %>';

Но если бы это был я я бы на самом деле сделать цвет расчет на frontend, то есть вы, по сути, назначать количество действий для каждой дискуссии в JavaScript переменные, и что будет сделано с теми (пользовательский цвет фона, например, или что-нибудь еще) будут определены в JavaScript. Цвет любого элемента просто не похоже, что вы хотите рассчитать на стороне сервера, если это предполагает сложную бизнес-логику.

2
ответ дан 11 августа 2011 в 11:08 Источник Поделиться

Это не имеет ничего общего с Руби. Встроенные стили не должны использоваться в любые веб-разработки, когда-либо. Задать цвет фона в CSS-файл.

Бонусный совет: использовать Haml на и Сасс.

1
ответ дан 21 октября 2011 в 09:10 Источник Поделиться