2011-01-31 21 views

答えて

0

私は長く見えて、これを行う方法を見つけるのが難しく、結局それは簡単すぎました! 私は経路の変更、コントローラコードのロードなどを必要としませんでした。 移行でadmin_flagという名前のデータベースにフィールドを追加するだけです)、新しい/編集用のRailsビューフォームを変更して使用してください。次に、アプリケーション/ html.erb上 はちょうど追加:ログインしているユーザーは、あまりにも管理者であれば

<% if current_user %> 
     <% if current_user.admin_flag == true %> 
     | <%=link_to(:categories, :categories) %> 
     | <%=link_to(:users, :users) %> 
     <% end %> 
    <% end %> 

は、このユーザーのみとカテゴリが表示されます。 少なくとも1人の管理ユーザーを設定した後、またはsqlを使用して少なくとも1人の管理ユーザーを設定する必要があります。

1

私が定期的に使用する別のアプローチは、UserGroupという別のモデルを用意することです。例えば:あなたは、あなたのユーザモデルにuser_group_id:integerを追加します

$ rails g scaffold user_group name:string description:text is_admin:boolean

:特定のユーザーである場合

$ rails g migration add_user_group_id_to_users user_group_id:integer

ユーザーモデルでは、あなたは、あなたが把握に役立つ2つのインスタンスメソッドを追加することができます「通常」のユーザまたは「管理者」ユーザー:

#app/models/user.rb 
def normal? 
    self.user_group && !self.user_group.is_admin 
end 

def admin? 
    self.user_group && self.user_group.is_admin 
end

これは、おそらく過剰殺す管理者と非管理者のみがあるプロジェクトのためですが、ユーザーの多くのカテゴリがある場合に便利ですeコマースマネージャー、story_editorなど

関連する問題