如何通过twilio发送本地数据库项?

时间:2014-04-07 09:12:07

标签: ruby-on-rails ruby

Ruby on rails初学者在这里。我一直在尝试为我的垒球队创建一个网络应用程序,它在比赛开始前24小时发出短信,上面写着“你打算参加比赛吗?”团队回复“y或n”并在数据库中更新。

我还在学习,所以我尝试做的第一件事就是尝试从数据库中提取有关每个游戏的信息并将其发送到twilio。

def voice
  response = Twilio::TwiML::Response.new do |r|
    r.Say "Our next game will be at #{game.start_at}.", :voice => 'alice'
     #r.Play 'http://linode.rabasa.com/cantina.mp3'
  end

  render_twiml response
end

我从view / index.html.erb

中撤出
#{game.start_at} 

然而,我收到此错误:

Game Load (0.5ms)  SELECT "games".* FROM "games" LIMIT 1                                                                                                                                                                
Completed 500 Internal Server Error in 34ms                                                                                                                                                                               

NameError (undefined local variable or method `game' for #<TwilioController:0x007f7594530f00>):  

我使用了这个脚手架命令。并使用表单创建了一个新的游戏条目。

rails generate scaffold games start_at:datetime ... 

有人能指出我正确的方向吗。

1 个答案:

答案 0 :(得分:2)

视图不允许您访问本地变量。必须从控制器提供数据。

例如,

控制器/ game_controller.rb

def something
  @my_variable = "Hello World"
  my_variable = "Something else"
end

视图/游戏/ something.html.erb

#{my_variable} <<- This gives error
#{@my_variable} <<- This is good!

总结一下,

#{game.start_at} should have been #{@game.start_at}

从视图的控制器操作提供

@game 。在你的情况下,那将是

def index
  @game = ...
end
某个控制器的