Улучшить ненавязчивый javascript (и, возможно, использовать CoffeeScript) в приложении Rails

У меня есть приложение, которое использует некоторый Javascript для основных запросов Ajax, таких как автозаполнение и поиск в реальном времени. Например, я реализовал живой поиск следующим образом; Я обнаружил потенциальную проблему и хотел бы поговорить с вами об этом, чтобы получить лучший код.

app / controllers / company_controller.rb

def livesearch
  @companies = Company.search(params[:query])
  render :partial => "companies", :locals => {:companies => @companies}
end

app / views / companies / _companies.html. главным образом потому, что он ожидает (по крайней мере, если вы используете Barista) где-нибудь найдет чистый код javascript (например, в app / coffeescripts / ) и компилирует его в public / javascripts . Но в моем приложении у меня также есть файл .js.erb в моем app / views / companies ; например, у меня есть система голосования, в которой в app / views / companies / _vote.js.erb : $ ("# vote_link _ <% = escape_javascript (@ company.id.to_s)%>"). Html ("<% = escape_javascript (vote_link_for (@company))%>") Чтобы заменить ссылку «Голосовать за эту компанию» на ссылку «Отменить голосование этой компании» (и наоборот) запросом Ajax, который обрабатывается действиями проголосовать и проголосовать в контроллер. Я знаю, что есть coffee-haml-filter, который компилирует CoffeeScript внутри файлов haml, но это не совсем то, что мне нужно, и обычно не рекомендуется и считается чем-то грязным (?).

Итак, вопросы по крайней мере:

  • Как чтобы иметь CoffeeScript в моем app / views / * / *. js. * ?
  • Нужно ли мне вообще иметь app / views / * / *. js. * файлы?
  • Как удалить все идентификаторы элементов и пути, жестко запрограммированные в javascripts, наиболее эффективным и элегантным способом?

Извините за длинный вопрос и спасибо, что дошли до конца!

6
задан Alberto Santini 14 March 2011 в 14:23
поделиться