0

アプリケーションに水銀を設定しました。正常に動作しますが、レールに慣れていないため、認証を設定できません。これは私が実行後に試したものです: railsはmercury:install:authenticationを生成します

  • libディレクトリのモジュールを使用できるようです

    module Mercury
      module Authentication
    
         def can_edit?
           true if :authenticate_admin!  //(from device)
         end
      end
    end
    

ビューでこのメソッドを使用しようとしましたが、機能しません。その行は設定ファイルでコメント化されていないため、Libディレクトリは自動ロードする必要があります。

ちなみに、updateメソッドにbefore_filterを追加するだけで、通常のユーザーが編集したページを確認するのを防ぎます。ただし、不要なURLを手動で変更した場合でも、エディター自体を表示できます。

  • Mercury Controllerをオーバーライドしようとしましたが、機能しません

なにか提案を?

4

2 に答える 2

5

遅い答え私は知っていますが、それが他の誰かに役立つかどうか。

lib/mercury/authentication.rb

module Mercury
  module Authentication

    def can_edit?
      if user_signed_in? && current_user.admin?
        true
      else 
        redirect_to root_path
      end
   end

 end
end

アプリケーションコントローラー.rb

class ApplicationController < ActionController::Base
   protect_from_forgery
   include Mercury::Authentication
 ....

サーバーを再起動すると、管理者のみがページを表示および更新できます

于 2012-10-22T16:53:21.973 に答える
2

私も同じ問題を抱えていました。私にとってうまくいった解決策は、次のようにモジュールが処理するものを authentication.rb に明示的に含めることでした。

module Mercury
    module Authentication
        include YourAppName::YourAuthenticationModule
        def can_edit?
            admin_signed_in?
        end
    end
end

それに応じてモジュールと認証方法を挿入し、サーバーを再起動します

于 2012-11-29T15:48:33.630 に答える