2014-12-04 2 views
3

Скажите, что у меня есть постоянная ANIMALS = %w(dog cat horse). Что такое идеальный способ предоставить его скриптам, чтобы избежать дублирования его там? Один из способов сделать это назначение его глобальным с точки зрения, вроде этого:Как использовать DRY-интерфейсные/базовые константы

<script> 
    Constants.animals = <%=raw ANIMALS %> 
</script> 

но есть способ сделать это лучше?

+0

@ Зелёный я не уверен, если вы понимаете вопрос правильно. Вопрос заключается в том, как избежать дублирования между кодом Ruby (на стороне сервера) и JS-кодом (на стороне клиента), поскольку OP хочет использовать это в обеих сторонах. –

+0

@MarekLipka thx, я должен больше изучать английский вместо рубина. –

ответ

0

Я всегда ставил свои константы в пределах модели, к которой она принадлежит. Это, как я хотел бы сделать что-то вроде этого:

class Animal 
    ANIMAL_TYPES = ['dog', 'cat', 'horse'] 
end 

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

<script> 
    Constants.animals = <%=raw Animal::ANIMAL_TYPES %> 
</script> 
+0

Я думаю, что у вас есть вопрос не так. ОП попросил способ избежать сценария вообще и иметь константу рубина, доступную в JS каким-то образом. –

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