2

我在使用 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

好吧,我又尝试了一件事,它奏效了,但在这里以防万一。

4

1 回答 1

3

我跑了 $ heroku run rake db:reset,它又工作了。不知道为什么,但是哦。

编辑:

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

例如,而不是: @user.is_admin?使用@user.has_role?(:admin)它不会破坏。

于 2012-07-22T09:21:08.993 回答