2016-08-31 8 views
0

ROR新しいサンプル・ページから作業が、私はローカルホストに移動すると、次のエラーを経験しています:3000型「アプリケーション/ javascriptの」と「action_cable」スプロケット::にFileNotFoundファイルを見つけることができませんでした/で

「私はこの/どのように修正する原因になっているかわからないんだけど、私が追加した場合< ...>

は型「アプリケーション/ javascriptの」と「action_cable」ファイルこれらのパスにチェック を見つけることができませんでしたレイアウトの偽 "をコントローラのファイルに書き込むと、すべて正常に動作します。下記のファイルは、以下のとおりです。

source 'https://rubygems.org' 
ruby '2.3.0' 
gem 'rails', '4.2.4' 

# Rails defaults 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'byebug' 
gem 'web-console' 
gem 'spring' 
gem 'foundation-rails', '~> 5.5' 
gem 'gibbon' 
gem 'high_voltage' 
gem 'simple_form' 
group :development do 
    gem 'better_errors' 
    gem 'quiet_assets' 
    gem 'rails_layout' 
end 
gem 'sqlite3' 
group :production do 
    gem 'pg' 
    gem 'rails_12factor' 
end 

ビューファイル:

<h1>Home</h1> 
<p>Welcome to the home of <%= @owner.name %>. </p> 
<p>I was born on <%= @owner.birthdate %> 
<p>Only <%= @owner.countdown %> days until my birthday!</p> 

モデルファイル:

class Owner 
    def name 
      name = 'Foobar Radigan' 
    end 

     def birthdate 
      birthdate = Date.new(1990,12,22) 
     end 

     def countdown 
       today = Date.today 
       birthday = Date.new(today.year, birthdate.month, birthdate.day) 
       if birthday > today 
         countdown = (birthday - today).to_i 
       else 
         countdown = (birthday.next_year - today).to_i 
       end 
     end 

end 

コントローラファイル:

class VisitorsController < ApplicationController 
     # Do not use layout 
     # layout false 

    def new 
      Rails.logger.debug 'DEBUG: entering new method' 
      @owner = Owner.new 
      render 'visitors/new' 
      Rails.logger.debug 'DEBUG: owner name is ' + @owner.name 
    end 

end 
ここ

は私の宝石のファイルです

* 'layout false'行のコメントを外すとすべてが機能しますが、レイアウトはありません。

+0

gem 'rails'、 '4.2.4'をgem 'rails'、 '5'に変更してみてください –

答えて

0

ActionCableはRailsの5の機能ですが、あなたはGemfile

+0

レール5にアップグレードする方法はありますか? –

+0

本当に、Rails 5のキラー機能の1つです...アプリケーションに 'faye'を統合しようとすることはできますが、' thin'のようなスレッドサーバが必要になります。ほとんどの場合、最も単純な解決策は、Webソケットを提供し、レールアプリと通信するnode.jsアプリケーションを使用することです(最も簡単な解決策は、いくつかのpub/sub技術を使用することです...例えば、redisはそれを提供します) – shlajin

2

短い答えでRailsの4を指定:

だけcable.js中/アプリ/資産/ JavaScriptの/を削除していること問題を解決する必要があります。

LONG ANSWER:

あなたが再び登場、この問題を持っていないことを確認するために、ここで回顧憶測のビットです。

私の推測では、あなたがグローバルシステムにインストールさRoRの5.xのを持っているということです、そしてあなたが

#rails _4.x.x_ new app_name 

を使用して4.xのRoRのアプリだと思ったものを生成した後、あなたが5.xのを持ってしまいました代わりにRoRアプリ。これで、レール4.x.xが必要であることを示すGemfileを手動で更新しても、プロジェクトにはまだ残りの部分が残っています。そのうちの1つはcable.jsファイルです。それはあなたが見ているエラーを持っていると思います。

これを避ける方法。私が理解しているように、古いレール版を強制する上の方法は文書化されておらず、必ずしも機能しません。確かに動作する別の方法があります。

あなたはRoRのは、グローバルにインストール5.xのを持っているし、その後、rails4_appと呼ばれるプロジェクトのためのRoRのv.4.xxを施行するとします:

#mkdir rails4_app 
#cd rails4_app 
#echo "source 'https://rubygems.org'" > Gemfile 
#echo "gem 'rails', '3.2.17'" >> Gemfile 
#bundle install 
#bundle exec rails new . --force --skip-bundle 
#bundle update 

そして、ここであなたが行く - 今、あなたはあなたのレール4を持っています.xxアプリはブートストラップされました。

+0

ありがとう。私はちょうどRails 5から4へのダウングレードが必要でした(ポストグレとjrubyを使用しようとしました... #pita)、これは私のベーコンを救った! – fenton

関連する問題