Ну, мой вопрос прост, как сделать приложение Ruby on Rails работать с Vue.js?Как сделать рельсы работать с vue.js?
Детали
Я первый смотреть на vue-rails
драгоценный камень, но добавить Vue к трубопроводу рельсы активов, и я хочу работать с другими пакетами НПМ, как browserify. Затем я смотрю на это, browserify-rails
, которые позволяют использовать commonjs в папке js app/assets/javascript/
. Также я планирую сделать приложение Vuejs для каждого контроллера рельсов и получить доступ к бэкэнд-действиям с помощью vue-resource
и vue-router
(если это нехороший подход, пожалуйста, дайте мне знать), поэтому я добавил следующую строку в мой макет
<%= javascript_include_tag params[:controller] %>
Это добавит JS файл с именем контроллера, поэтому UsersController
будет иметь users.js
файл с основным приложением ви для этого контроллера.
Затем, чтобы попробовать это я scaffolded а пользователи ресурса с рельсами, и сделать его визуализации формат JSON в каждом действии, как этот
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
Это работает отлично. Затем в папке app/assets/javascript/
добавить users.js следующего содержания
var Vue = require('vue');
Vue.use(require('vue-resource'));
new Vue({
ready: function(){
this.$http.get('users.json').then(function(response){
console.log(JSON.stringify(response));
});
}
});
И когда я инспектировать Dev консоли в хром, я вижу, что Vue добавляется, но я не вижу никакого ответа, и я уже вставлен один пользователь. Кстати, я пытаюсь использовать url https://vuejs-rails-yerkopalma.c9users.io/users
(я развиваюсь в c9.io), и отображается только файл /users/index.html.erb
. Так, WAHT мои догадки:
- я мог бы использовать
vue-resource
в неправильном направлении, я имею в виду URL передается функцииget()
. - Возможно, мне не хватает
vue-resource
конфигурации. - Может быть, я просто должен использовать драгоценный камень
vue-rails
в сочетании сbrwoserify-rails
, но я просто не знаю как. Любая помощь или рекомендация были бы оценены.
Вот мой application.js
файл (также включен в мой файл макета)
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
В вашем '. Then' вызове вы не указали обработчик ошибок. Вы должны добавить его с протоколированием. Кроме того, используйте инспектор вашего веб-браузера, чтобы посмотреть на фактические запросы сети, чтобы убедиться, что он сформирован и отправлен так, как вы ожидаете. –
стоит отметить, что vuejs-rails использует устаревшие библиотеки vuejs. И если вы используете браузер-рельсы, то вы не будете использовать звездочки/application.js. Итак, вы должны выбрать один из способов загрузки зависимостей от javascript. – ytbryan
@ytbryan Я использую звездочки и файл application.js (загрузка jQuery и bootstrap отсюда) вместе с браузером рельсов без проблем. Во всяком случае, может быть, вы правы в том, что просто используете один способ управления js-зависимостями, но я не знаю, почему вы заявили об устаревших библиотеках vuejs. Загружает ли браузеру рельсы устаревшую версию Vue.js? –