2011-08-30 5 views
0

にアクセスすることはできません、私は、ログまたはコンソールへの出力なしのコールから即時切断を引き起こしている次のコードを持っている:Adhearsionのダイヤルプランは、私のadhearsionのダイヤルプランではレールモデル

the_flow = CallFlow.where(:dnis => dnis).first 

CallFlowは、モデルであります私のadhearsionアプリのguiディレクトリにある私のレールアプリ(gui/app/models/call_flow.rb)で。

paths: 
    # All paths are relative to this file's directory 
    init: config/startup.rb 
    dialplan: dialplan.rb 
    events: events.rb 
    models: gui/app/models/*.rb 

そして、これがcall_flow.rbです:

class CallFlow < ActiveRecord::Base 
    belongs_to :routable, :polymorphic => true 

    def dialplan 
    puts self.routable.description.squeeze("\n").strip 
    end 

    def target_route=(params) 
    self.routable = params[:kind].constantize.new(params.reject {|k,v| k == "kind"}) 
    end 
end 

そして最後に、私は設定/ startup.rbに次の行があります。

config.enable_rails :path => 'gui', :env => :development 
を私は持っている私の.ahnrcファイルで

レールサーバーを使ってレコードを作成することができるので、モデルが動作することが分かります。しかし、私はダイヤルプランが上記の最初の行に到達したときにコールを切断するために何が起こっているのかについての情報を得る方法も知らない。

+0

ActiveRecordの問題を救済する方法を知っていれば助けになるかもしれません... –

答えて

1

いくつかのことを引き起こしているコードを実行しようと、コンソールに

bundle exec rails console 

を開始し、

最初レールコンソールでこのコードを実行しようとします:

  • ログを:debugに設定してconfig/startup.rb
  • レール統合またはデータベース統合のいずれかを有効にしていることを確認してください。
  • 1.1.0より前のバージョンのAdhearsionを実行している場合、dialplan.rbで発生する例外が静かに失われることがあります。 1.1.0以降(1.2.0は現在安定しています)にアップグレードし、例外ハンドラを作成することを検討してください。これは簡単なメッセージロガーでも、Airbrakeに例外を報告することもできます。単純なAdhearsion例外ロガーについては、この記事の最後を参照してください。
  • Adhearsionコンソールを起動して、モデルがまったくロードされているかどうかを確認してください。 Adhearsionコンソールをahn start console /path/to/ahn/appで開始します。 Railsコンソールに似たコンソールがあり、すべてのActiveRecordモデルにアクセスできるはずです(Rails統合が正しくロードされていることが前提です)。

Adhearsion 1.1.0以降の例外ログ機能の例。あなたのevents.rbでこれを入れて:Adhearsionのためのデータベースの統合対on Railsの

events.exception.each do |e| 
    ahn_log.error e.message 
    ahn_log.debug e.backtrace.join("\n") 
end 

一般的な注意:

  • Railsの統合のために何かを使用して、データベースの統合についてconfig.enable_rails :path => '/path/to/rails/app', :env => :production
  • のようなラインのものを持っています次のようになります。 config.enable_database :adapter => 'mysql', :username => 'root', :password => '', :host => 'localhost'
  • データベース統合(Rails統合ではありません)の場合、モデルがAdhearsionが見つけられる場所にあることを確認する必要があります。デフォルトの場所はmodels/ですが、これはAdhearsionアプリのベースディレクトリにある.ahnrcファイルを編集することで変更できます。
+0

新しいバージョンのadhearsionを使いやすくなるでしょうか? –

+0

Adhearsionの新しいバージョンを使用するのは非常に簡単です。 Gemfileを更新して(少なくともAhn 1.0を使用していると仮定して)、バンドルインストールを行ってください。私は個人的にコードチェンジなしで0.8.3ほどまでにAdhearsionアプリをアップグレードしました。 1.0 APIは、Ahn 2.0まで下位互換性が保証されています。そうでなければ、それはバグです。 –

+0

あなたはevents.rbの部分で私の人生をかなり救った。グローバルコンフィギュレーションファイルとともにオプションとしてAdhearsionに組み込む必要があるIMO :)ありがとうBen –

0

はチェックして問題

CallFlow.where(:dnis => "something").first # replace "something" with something valid 
関連する問題