kham
August 20, 2013, 3:19pm
1
Robię aplikację angular + rails i wykorzystuję ngResource. Żeby obiekty $resource angulara używały ścieżek z modeli z railsów, robię tak:
var Task = $resource("<%= Rails.application.routes.url_helpers.api_tasks_path %>/:taskId");
Macie pomysł na skrócenie wywołania tego api_tasks_path? W takiej formie prościej byłoby napisać zwykłe ‘/api/tasks’
Tomash
August 20, 2013, 3:27pm
2
Nie lepiej takie rzeczy przekazywać np. przez Gona albo trzymać jako data attributes w htmlu? Zawsze jak widzę tagi erb-owe w kodzie js to czuję że mój kotek siedzi w domu i płacze.
kham
August 20, 2013, 6:13pm
3
Dzięki, twój kotek może wrócić do szamania ćwierfunciaka z serem.
Zmieniłem na:
[code]# home.js
var Task = $resource(gon.api_task_path);
applicaton_controller.rb
before_action :set_gon_paths
private
def set_gon_paths
Rails.application.routes.routes.each do |route|
gon.send route.name + ‘_path=’, route.optimized_path if route.name
end
end[/code]