さまざまなユーザーを持つレールB2Bアプリケーションを構築します。私はDeviseとCanCanを使って社内スタッフのアクセスを制限することは明らかですが、サプライヤと顧客に自分のログイン情報を与えることもできるようにしたいと考えています。顧客はかなりシンプルになりますが、サプライヤ(ラベル)のログインにより、自社の製品および販売データのみを表示および修正できるようにしたいと考えています。Devise/CanCan - 制限付きコンテンツ
モデルはおおよそ次のとおりです。
User (as setup by Devise)
Label [has_many releases]
Release [belongs_to label/has_many products]
Product [belongs_release/has_many tracks]
Track [belongs_product]
私はユーザモデルにlabel_idフィールドに追加し、そのように関連付けることができ推測しているが、私は内部ユーザー(顧客)に必要なすべてを表示するアクセス権を持っていますラベルデータ。私はまた、ラベルが多くのユーザーを持つことを許可する必要があります。
Cancanを介して 'label'ロールを定義して、ビュー内でlabel_idを使用することは簡単なのでしょうか?それが正しいアプローチなら、コントローラ/ビューのlabel_idにコンテンツをロックダウンするにはどうしたらいいですか?ロールベースのif文?
ありがとうございます!することができますあなたのroutes.rb
ファイルに次に
class CheckingController < ApplicationController
def index
@path = case user.role
when 'supplier'
supplier_path
when 'customer'
customer_path
when 'staff'
staff_path
else
admin_sign_in_path #or whatever
end
redirect_to @path
end
end
:あなたが最初に行う必要があるだろう何
多くのおかげでポインタに感謝しています。どうぞよろしくお願いします。 – Raoot