Rails 3:在生产服务器上部署应用程序后出现“未初始化的常量Formtastic :: FormBuilder”错误

时间:2011-06-22 10:34:53

标签: ruby-on-rails production formtastic

我正在尝试在生产服务器上部署我的Rails3.0应用程序。之前有很多麻烦,但所有这些都解决了。现在我又有了另一个。

有乘客错误页面的文字:

错误讯息: 未初始化的常量Formtastic :: FormBuilder

异常类: NameError

回溯:

0 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/client_side_validations-3.1.0/lib/client_side_validations/formtastic.rb 20 in''

1 /home/ubuntu/projects/questroad/config/initializers/client_side_validations.rb 4 ' 2 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 201 in区块(2个级别)中的'

3 /home/ubuntu/.rvm/gems/ruby-1.9.2-p180@rails3.0/gems/railties-3.0.7/lib/rails/engine.rb 200 in“each”

...

谷歌搜索结果对我没有帮助,现在我在这里。

UPD: 此外,如果我尝试运行WEBrick服务器,则会出现同样的错误。

UPD: 我尝试在Gemfile中评论“gem'client_side_validation'”行,错误消失了。但现在我无法使用这个宝石。

4 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,但没有出现在制作中,我在开发之后在开发中遇到了这个错误:

bundle update

然后尝试运行我的rspec。

似乎捆绑更新,安装了client_side_validations 3.1.0,这似乎会产生问题(...不确定原因,我没时间分析它atm),但是在Gemfile中使用固定版本解决了它:

gem 'client_side_validations', '3.0.5' 
希望它有所帮助!

答案 1 :(得分:3)

发生这种情况是因为您安装了Formtastic 1.x. ClientSideValidations的3.1.x版本需要Formtastic 2。

答案 2 :(得分:0)

检查您是否安装了formtastic gem。

也可以在生产机器上运行

bundle install --deployment

因为这会将所有宝石安装到乘客可以找到的位置。有时,乘客无法找到宝石路径。

答案 3 :(得分:0)

我不知道你是否遵循了这个过程,但我重新命令你用你的宝石套装你的乘客并从RVM开始独立乘客模式

rvm wrapper ruby-1.9.2-p180@rails3.0 passenger

并以此为例开始:

rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.2-p180@rails3.0' -c \
    'cd /<your app PATH>/current/ && bundle exec passenger start -a 127.0.0.1 -p 3000 -d