2016-06-09 2 views
0

Я пытаюсь получить доступ к следующему методу в контроллере Rails из файла javascript. Из того, что я читал, мне кажется, что мне действительно нужно превратить js в файл js.erb и указать путь с помощью «resource_path». Тем не менее, я получаю сообщение об ошибке в моей консоли говоря: «Недопустимое регулярное выражение: отсутствует /», что указывает на строку кода, где у меня есть:Доступ к пути рельсов из javascript

$.get(<%= asset_path('next') %>, {id: projectId, next: 4}).done(function(response){ 

В принципе, я просто пытаюсь получить доступ к методу " def next "в одном из моих контроллеров. Есть ли более простой способ? Помогите!

ответ

0

Правильно эрб файл становится компилируется

$.get(/some/path/here, {id: projectId, next: 4}).done(function(response) 

Так, чтобы исправить это обернуть его в кавычки

$ .get ("<% = asset_path ('Далее')%>", { ID: ProjectID, следующая:. 4}) сделано (функция (ответ)

, которые должны получить оказано

$.get("/some/path/here", {id: projectId, next: 4}).done(function(response) 
+0

ОК, интересный. Мой «следующий» метод находится в моем контроллере проектов, поэтому я написал: $ .get («<% = asset_path (« projects/next »)%>», и теперь я получаю сообщение об ошибке 500 - выглядит как проблема в пределах view ... но чтобы получить доступ к этому маршруту, у меня это было правильно с «project/next?» – bjorkland

+0

похоже на [helper] (http://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html # method-i-image_path) префиксы 'assets', если вы используете относительную ссылку, поэтому' asset_path ('projects/next') 'разрешает'/assets/projects/next' и 'asset_path ('/ projects/next')' разрешает '/ projects/next' –

+0

Прохладный-- спасибо! Это было действительно полезно. – bjorkland

0

<%= asset_path('next') %> не будет ссылаться на строку кода, этот помощник обычно связывается с такими ресурсами, как CSS, файлы JS или изображения.

Как я обычно передать ссылку на JavaScript с целью является использование атрибутов данных на HTML, например:

view.html.erb

<div id="someId" data-somedata="<%= @information_I_want_to_pass %>"> 
</div> 

Тогда в моем файле JavaScript я использую JQuery, чтобы получить информацию:

javascript.js

function example(){ 
    var url = $('#somId').data('somedata'); 
    $.get(url, {id: projectId, next: 4}) 
    .done(function(response) 
} 

Hop это помогает!

+0

Я согласен, передавая данные из вида в js, должен быть лучшим способом. – sonnyhe2002

+0

Спасибо, это помогает. – bjorkland

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