在轨道上集成flex与ruby的问题

时间:2010-03-04 08:54:13

标签: ruby-on-rails flex

我遇到了在导轨上集成flex和ruby的问题。我收到这个错误:

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
  <internal:prelude>:8:in `synchronize'
  /Users/tammam56/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
  /Users/tammam56/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
  /Users/tammam56/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

我相信Rails会在使用生成HTML的“View”组件时自动生成AuthenticityToken,因为我在控制台中注意到AuthenticityToken随每个请求传递。但是,当我使用Flex作为我的客户端界面而不是通过视图生成的HTML时,如何获取/生成此AuthenticityToken并将其存储在Flex中。

谢谢,

3 个答案:

答案 0 :(得分:1)

嘿,好问题。这实际上是一个非常难以解决的问题,但来自RestfulX的Dima和贡献者已经很好地解决了这个问题。

简而言之,在所有内容启动后,您必须在第一个请求Flex发送到Rails之后将真实性令牌存储在Flex中。然后,每次Flex到Rails的请求都会将其传回。为了获得请求,RestfulX有一个初始化脚本,可以使用Rack中间件将真实性令牌发送到Rails。

我建议您查看RestfulX Google Group,然后查看示例Pomodo on Rails应用程序(RestfulX集成Flex和Rails)。这是一个带有管理系统的严肃的Project Management Flex应用程序,因此请查看所有身份验证内容的代码。

它是基于这样的脚本构建的:

FlashSessionCookieMiddleware

这是一个tutorial explaining file uploads between Flex and Rails,它在真实性令牌方面存在很多问题。

让我知道它是怎么回事! 兰斯

答案 1 :(得分:0)

我不是灵活专家,但这里是你如何存储js变量:

window._token = '<%= form_authenticity_token %>'; 

答案 2 :(得分:0)

上面有一篇博客文章描述了如何做的所有步骤。

见:

http://blog.dt.org/index.php/2008/06/rails-2-flex-3-and-form-authenticity-tokens/

希望有所帮助