0

В моем приложении установлена ​​ртуть. Он работает правильно, но поскольку я все еще очень новичок в рельсах, я не могу настроить аутентификацию. Это то, что я пытался после запуска: рельсов генерировать ртуть: установка: аутентификацииRails Проверка подлинности ртути

  • Кажется, я могу использовать модуль в Lib каталога

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

И я пытался использовать этот метод в представлении, но он не работает. Каталог Lib должен быть автоматически загружен, поскольку эта строка не комментируется в файле конфигурации.

Кстати, только добавив параметр before_filter в метод обновления, я запрещаю нормальным пользователям создавать подтверждающие отредактированные страницы. Но они все равно могут видеть сам редактор, если они изменить URL-адрес вручную, который нежелателен.

  • Я попытался переопределить Mercury Controller, но он даже не работает

Любое предложение?

+0

Вам нужно определить «это не Работа". Вы получаете ошибки, трассировку стека, некоторую логическую ошибку? – jdl

+0

Я не могу запретить пользователям просматривать редактор. Поэтому я не использую аутентификацию Mercury правильно. – Barbared

ответ

5

Поздний ответ Я знаю, но если это помогает кому-то еще.

Библиотека/ртуть/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 

applicationcontroller.rb

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

перезагрузить сервер, а затем только администратор может видеть и обновить страницу

+0

Да, это сработало для меня спасибо! –

2

У меня было то же самое проблема. Решение, которое работало для меня было явно включать в зависимости от того, модуль обрабатывает в authentication.rb так:

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

Вставьте модуль и метод аутентификации соответственно и перезапустить сервер

Смежные вопросы