2

私のマシンでは正常に動作しているのに、Herokuの特別な構成によって提供される関数を使用するとエラーが発生します。

具体的には、Rolifyメソッドis_adminを使用していますか?on userは、初期化ファイルの構成設定によって可能になります。

これまでのところ、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つ試してみましたが、うまくいきましたが、念のためここに示します。

4

1 に答える 1

3

$を実行heroku run rake db:resetすると、再び機能しました。理由はわかりませんが、まあ。

編集:

問題は、ロールがデータベースにまだ存在しないときにRolifyカスタムメソッドを呼び出すと、エラーが発生することです。これを回避するには、必要なすべてのロールをデータベースにシードするか、動的メソッドを使用しない方がよいでしょう。

たとえば、の代わりに: @user.is_admin?を使用する@user.has_role?(:admin)と、壊れることはありません。

于 2012-07-22T09:21:08.993 に答える