私の質問は簡単です、どのようにRuby on RailsアプリケーションをVue.jsで動作させるのですか?vue.jsでレールを動作させる方法は?
詳細
私が最初vue-rails
宝石を見て、それがレール資産パイプラインへのVueを追加し、私はbrowserifyのように、他のNPMのパッケージと仕事をしたいです。それから、jsフォルダのcommonjsを有効にするbrowserify-rails
を参照してください。app/assets/javascript/
また、すべてのレールコントローラ用のVuejsアプリを作成し、vue-resource
とvue-router
のバックエンドアクションにアクセスする予定です(これは良い方法でない場合は教えてください)ので、レイアウトに次の行を追加しました
UsersController
は、そのコントローラの主なVUEアプリで
users.js
ファイルを持っていますので、コントローラの名前とJSファイルを追加します
<%= javascript_include_tag params[:controller] %>
。私は、ユーザーがレールとリソース、およびそれが正常に動作しているこの
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @users }
end
end
のように、すべてのアクションにJSON形式をレンダリングしますスキャフォールドし、これを試して次に
、。その後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のが追加されますが、私は任意の応答が表示されていない、と私はすでに持っていたことがわかり1人のユーザーを挿入しました。ところで、私はhttps://vuejs-rails-yerkopalma.c9users.io/users
URLで試しています(私はc9.ioで開発中です)、/users/index.html.erb
ファイルだけがレンダリングされます。だから、私の推測WAHTです:
- 私は間違った方法で
vue-resource
を使用している場合があります、私はget()
関数に渡されたURLを意味します。 vue-resource
の設定が不足している可能性があります。- たぶん私はちょうど
brwoserify-rails
と組み合わせたvue-rails
の宝石を使うべきですが、私はちょうどその方法を知らないのです。どんな助けやガイドラインも感謝します。ここで
私はVue.js.でこの作業を行うために管理私の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'呼び出しで、エラーハンドラを指定していません。ロギングで追加する必要があります。さらに、Webブラウザのインスペクタを使用して、作成された実際のネットワーク要求を見て、期待通りに送信されていることを確認します。 –
vuejs-railsが古いvuejsライブラリを使用していることは注目に値する。また、browserify-railsを使用している場合は、sprockets/application.jsを使用しません。 あなたは本当にあなたのJavaScriptの依存関係を読み込む1つの方法を選択する必要があります。 – ytbryan
@ytbryan私は問題なくスプロケットとapplication.jsファイル(ここからjQueryとブートストラップをロードしています)とbrowserifyのレールを使用しています。とにかく、あなたはjsの依存関係を管理するための1つの方法を使用することについて正しいかもしれませんが、古いvuejsライブラリについて述べた理由はわかりません。 Vue.jsの古いバージョンをブラウザで表示しますか? –