首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adhearsion的拨号方案不能访问rails模型

Adhearsion的拨号方案不能访问rails模型
EN

Stack Overflow用户
提问于 2011-08-31 03:52:52
回答 2查看 393关注 0票数 0

在我的adhearsion拨号方案中,我有以下代码,这些代码会导致立即从呼叫断开连接,但没有任何输出到日志或控制台:

代码语言:javascript
复制
the_flow = CallFlow.where(:dnis => dnis).first

CallFlow是我的rails应用程序( gui / app / model /call_flow.rb)中的一个模型,它位于我的adhearsion应用程序的gui目录中。在我的.ahnrc文件中有:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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

最后,我在config/Startup.rb中有下面这一行:

代码语言:javascript
复制
config.enable_rails :path => 'gui', :env => :development

我知道这个模型是有效的,因为我可以使用rails服务器创建记录。但我甚至不知道如何获得任何信息,当它到达上面的第一行时,拨号方案会断开呼叫。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-31 21:31:19

以下是需要检查的内容:

  • 确保您在config/startup.rb
  • Ensure中将日志记录设置为:debug您已启用Rails集成或数据库集成,而不是同时启用两者。
  • 如果您运行的是1.1.0之前的Adearsion1.1.0版本,则dialplan.rb中出现的某些异常可能会自动丢失。考虑升级到1.1.0或更高版本(1.2.0是当前的稳定版本),并创建异常处理程序。这可以是一个简单的消息记录器,也可以向Airbrake报告异常。
  • 尝试启动Adhearsion控制台,看看你的模型是否已经加载。使用ahn start console /path/to/ahn/app启动Adhearsion控制台。然后,您将拥有一个类似于Rails控制台的控制台,并且应该能够访问所有ActiveRecord模型(假设正确加载了Rails集成)。

Adhearsion 1.1.0或更高版本的异常记录器示例。把这个放到你的events.rb里:

代码语言:javascript
复制
events.exception.each do |e|
  ahn_log.error e.message
  ahn_log.debug e.backtrace.join("\n")
end

Rails与Adhearsion数据库集成的一般说明:

对于Rails集成,只有一行类似于config.enable_rails :path => '/path/to/rails/app', :env => :production

  • For数据库集成的行,使用类似:config.enable_database :adapter => 'mysql', :username => 'root', :password => '', :host => 'localhost'

  • For
  • (不是Rails集成),你应该确保你的模型在Adhearsion可以找到它们的地方。默认位置为models/,但可以通过编辑Adhearsion应用程序基目录中的.ahnrc文件进行更改。
票数 1
EN

Stack Overflow用户

发布于 2011-08-31 10:51:13

尝试在rails控制台中运行此代码

首先启动控制台

代码语言:javascript
复制
bundle exec rails console

然后尝试运行导致问题的代码

代码语言:javascript
复制
CallFlow.where(:dnis => "something").first # replace "something" with something valid
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7248981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档