Ruby/Rails3 응용 프로그램에 로그인 한 후 사용자의 역할에 따라 특정 URL에서 사용자를 리디렉션하는 방법을 알아 내려고합니다.레일 3의 역할에 따라 사용자를 리디렉션합니까?
지금까지 필자는 인증을 위해 authlogic gem을 사용했으며 역할 설정을 위해 cancan gem을 사용했습니다.
역할은 (응용 프로그램/모델/user.rb에 정의)이 같다 :
class User < ActiveRecord::Base
acts_as_authentic
ROLES = %w[admin customer demo]
end
지금 로그인 돌보는되는 응용 프로그램/컨트롤러/user_session_controller.rb있다. 따라서 특정 URL로 사용자를 리디렉션하는 방법을 간단한 또는 우아한 방법이 있나요
"undefined method `role' for #<Class:0xb5bb6e88>"
:이 다음 오류 때문에 작동하지
for r in User.role
if r == "admin"
redirect_to admins_url
else
redirect_to users_url
end
end
: 나는 이런 일을하고 싶습니다 그들의 역할에?
는
@ steve-wilhelm 이것은 좋은 지적입니다. 현재 사용자의 역할 값에 액세스하려고합니다. 그러나이 방법을 사용하면 오류가 발생합니다. 정의되지 않은 메서드 'role'for nil : NilClass – user607225
사용자 테이블 마이그레이션에 역할을 추가하고 rake db : migrate를 수행 했습니까? –
ofcourse, 역할 mysql 필드는 적절한 데이터로 채워집니다. 예 : 테이블 : 사용자, 열 : 값으로 채워지는 역할 : "관리자" – user607225