Передать переменные ruby ​​в код js - PullRequest
0 голосов
/ 13 мая 2011

Мне любопытно, как лучше всего передать мои переменные rails в код JavaScript.Например, у меня есть эта строка в моем контроллере:

@address = get_user_address
@farms = Farm.all

Теперь мне нужно использовать ее для инициализации моей карты Google, сейчас я собираюсь использовать простой javascript, и я более чем уверен, что это уродливое решение.В связи с этим у меня есть что-то вроде этого

%script
  distance = []
  - @farms.each do |f|
    distance.push(['#{f.latitude}' + ',' + '#{f.longitude}' + ',' + '#{f.name}', #{f.distance_from(@address)}])
  distance.sort(sortMultiDimensional)
  user_coords = #{Geocoder.coordinates(@address)}

И Google Map Initalize происходит.Как избежать этого уродливого кода ruby-in-javascript?Спасибо!

Ответы [ 2 ]

4 голосов
/ 13 мая 2011

Поместите переменные в HTML отображаемой страницы, затем используйте javascript для чтения их из DOM во время выполнения. Это позволяет вам писать JS в отдельных файлах и не загромождать файл случайными переменными сценария.

Обязательно очистите пользовательские переменные.

0 голосов
/ 13 мая 2011
%script
  distance = #{@farms.collect{|f| [f.latitude, f.longitude, f.name] }.inspect}
  distance.sort(sortMultiDimensional)
  user_coords = #{Geocoder.coordinates(@address)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...