Я использую Rails 4. У меня есть следующий файл:Рубин на Rails маршрутах префиксы не предварительной обработки в .erb.js файл
// apps/assets/javascripts/products.js.erb
var getColoursAndMaterialsData = function(onSuccess)
{
var fd = formdata();
$.post('<%= data_products_path(:format => :json) %>', fd)
.done(function(data)
{
onSuccess(data);
});
};
Когда products.js.erb входит в .html .erb файл я получаю сообщение об ошибке:
undefined method `data_products_path'
ясно маршруты префикс «data_products_path» не быть предварительно обработаны. У меня создалось впечатление, что предоставление product.js расширения .erb будет коаксировать предварительный процессор.
Тот же самый самый код работает, когда между тегами <script type="text/javascript"></script>
в файле .html.erb. Соответствующая часть моих маршрутов.rb выглядит так:
resources :products do
collection do
post 'data'
end
end
Есть ли что-то еще, что мне нужно сделать?
сообщение об ошибке указывает на то, что ваш шаблон обрабатывается, но рельсы не знает метод data_products_path. Можете ли вы показать свой файл config/routes.rb? –
Возможно, я должен был упомянуть, что тот же самый код работает, когда непосредственно помещается . Я обновлю вопрос и добавлю соответствующую часть маршрутов.rb. –