rails_admin
백엔드에 gem을 사용하는 Rails 3.2.x 앱이 있습니다. 또한 인증을 위해 Devise를 사용하고 있으며 User
사용자가 관리자인지 직원인지 여부 를 알려주는 역할 필드가 모델에 있습니다.
내가하려는 것은 rails_admin에 대한 인증을 설정하는 것이므로 http://domain.com/admin 을 방문 current_user.role == "admin"
하면 내 홈 컨트롤러 색인 경로로 리디렉션되는 경우에만 허용됩니다.home_index_path
이 작업을 수행해야하는 이니셜 라이저를 설정했으며 역할이 관리자가 아닌 경우 관리자 액세스를 거부하지만 다음 오류가 발생 No route matches {:controller=>"home"}
합니다.. routes.rb
RailsAdmin 라인이 마운트 된 위치 와 관련이있을 수 있다고 생각 routes.rb
하지만 확실하지 않습니다. 궁극적으로 이것은 admin과 같지 않은 경우 역할을 확인하고, home_index_path를 redirect_to하고 메시지를 플래시해야합니다.
어떤 도움이라도 대단히 감사합니다.
rails_admin.rb
RailsAdmin.config do |config|
config.authorize_with do |controller|
unless current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to home_index_path
end
end
end
Google 검색 후이 문제 를 해결 하는 문제 를 발견했습니다 . 네임 스페이스가 다른 것 같아서`main_app.root_path로 리디렉션하면 트릭이 발생했습니다. 여전히 플래시 메시지가 작동하지 않습니다. 이것에 대한 어떤 생각?
RailsAdmin.config do |config|
config.authorize_with do |controller|
unless current_user.role == 'admin'
redirect_to main_app.root_path
flash[:error] = "You are not an admin"
end
end
end
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다