滚动未被heroku运行或识别的动态调用

时间:2012-07-22 09:21:09

标签: ruby-on-rails ruby-on-rails-3 heroku

我在使用Heroku上的特殊配置提供的功能时遇到错误,即使它在我的机器上运行正常。

具体来说,我使用的是Rolify方法is_admin?在用户上,这可以通过初始化文件中的配置设置实现。

到目前为止,Heroku已经迁移了数据库,重新启动了应用程序并为每个页面刷新了多次页面。每次重置本地服务器时,如何让Heroku运行配置文件,就像本地机器一样?

错误:

 ActionView::Template::Error (undefined method `is_admin?' for #<User:0x0000000524c8e0>):
2012-07-22T09:00:53+00:00 app[web.1]:     1: <% if current_user.is_admin? %>

代码:

# config/initializers/rolify.rb
Rolify.configure do |config|
  config.use_dynamic_shortcuts
end

嗯,我尝试了另外一件事,但它确实有效,但这只是为了以防万一。

1 个答案:

答案 0 :(得分:3)

我跑了$ heroku run rake db:reset然后再次运作了。不知道为什么,但是哦。

修改

问题是,如果在数据库中尚不存在角色时调用Rolify自定义方法,则会导致错误。要解决这个问题,可以使用您需要的所有角色为数据库设置种子,或者更好,不要使用动态方法。

例如,而不是: @user.is_admin?使用@user.has_role?(:admin)并且不会中断。