那麼我的問題很簡單,如何使Ruby on Rails應用程序與Vue.js一起工作?如何使vue.js與rails一起工作?
細節
我第一次看vue-rails
寶石,但添加的Vue到軌資產的管道,我想與其他NPM包時,像browserify。然後我看,browserify-rails
,啓用js文件夾app/assets/javascript/
commonjs。此外,我打算爲每個鐵軌控制器製作一個Vuejs應用程序,並使用vue-resource
和vue-router
訪問後端操作(如果這不是一個好方法,請告訴我),所以我將以下行添加到了我的佈局
<%= javascript_include_tag params[:controller] %>
這將增加與控制器名的js文件,所以UsersController
將有users.js
文件,該控制器的主要VUE應用。
然後,要試試這個我搭建的一個用戶軌資源,並使其呈現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));
});
}
});
當我檢查在Chrome瀏覽器開發控制檯,我看到的Vue增加,但我沒有看到任何反應,我已經插入一個用戶。順便說一下,我正在嘗試使用https://vuejs-rails-yerkopalma.c9users.io/users
網址(我正在使用c9.io開發),並且僅渲染了/users/index.html.erb
文件。 ,
- 我可能會以錯誤的方式使用
vue-resource
我的意思傳遞給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庫。如果您使用的是browserify-rails,那麼您將不會使用sprockets/application.js。 所以你應該真的選擇加載你的JavaScript依賴關係的一種方法。 – ytbryan
@ytbryan我使用sprocket和application.js文件(從這裏加載jQuery和bootstrap)以及browserify rails沒有問題。無論如何,也許你正確地使用一種方法來管理js依賴關係,但我不知道你爲什麼陳述過時的vuejs庫。 browserify rails會加載過時的Vue.js版本嗎? –