私は、Ruby/Rails3アプリケーションにログインした後、ユーザーのロールに基づいて特定のURLにユーザーをリダイレクトする方法を理解しようとしています。HowToは、レール3の役割に基づいてユーザーをリダイレクトしますか?
これまで認証用にauthlogic gemを使用していましたが、ロール設定にcancan gemを使用しました。
class User < ActiveRecord::Base
acts_as_authentic
ROLES = %w[admin customer demo]
end
今すぐログインの世話をしているアプリ/コントローラ/ user_session_controller.rbがある:
役割は、ちょうどこの(アプリ/モデル/ user.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
: 私はこのような何かをしたいと思い彼らの役割に?
(ロールは、ユーザーテーブルのMySQLの列 'ロール' で定義されている。)
@ steve-wilhelmこれは良い点です。現在のユーザーの役割の値にアクセスしようとしています。しかし、このメソッドを使用するとエラーが発生します。未定義のメソッド 'role 'for nil:NilClass – user607225
あなたのユーザーテーブルの移行にロールを追加し、rake db:migrateを実行しましたか? –
ofcourse、mysqlの役割は適切なデータで埋められています。例えばテーブル:ユーザー、列:値で満たされたロール: "admin" – user607225