現在、ユーザーアカウントにdevise gemを使用している管理者アカウントを作成したいと考えています。アプリ上で、ユーザーは製品を作成します。管理者の役割は、製品を確認して承認します。管理者が承認するまで、製品を公開しないでください。どうすればいいのかわからない。誰か手順教えて?とても助かります。ありがとう。
質問する
900 次
3 に答える
2
私は列を作成し、デフォルトでセットにapproved
ブール値を入力します。したがって、管理者だけがこれらの製品を見ることができます。Product
false
current_user.admin? ? @products = Product.all : @products = Product.where(:approved => false)
それよりも、同じアイデアを使用して、承認される製品をリストすることができます。
これで、コードの試行を開始でき、コードの問題に直面し始めたときに戻ってくることができます。
于 2013-02-15T11:40:48.277 に答える
2
- rails admin gemをインストールします(オプションですが、これはすばらしい gem であるため、管理パネルを最初から作成する必要はありません)。
published
実行して、製品テーブルに呼び出されるブールフィールドを追加しますrails g migration add_published_field_to_products published:boolean
default: false
生成された移行ファイル内に移動し、列に追加します- 走る
rake db:migrate
- 製品モデルにスコープを追加します。
scope :published, where(published: true)
そして出来上がり!これで、管理者は製品を公開または非公開にすることができ、コントローラーで、@products = Product.published
公開されたすべての製品を取得するなどのことを言うことができます。
于 2013-02-15T11:39:00.237 に答える
0
これをより広いレベルで実装したい場合は、Ryan Bates cancan gem を使用してください。役割を設定し、ビュー レベルで表示を制御できます。
于 2013-02-16T11:41:48.593 に答える