2016-01-13 165 views
-2

如何創建將創建角色爲「admin」的用戶的遷移文件?我寫了以下內容:爲管理員用戶創建遷移

rails g migration User 

我該如何授予「admin」角色給該用戶?

回答

1

遷移可以起到兩個作用:

  1. 結構的數據庫中的操縱
  2. 在數據庫數據的操作

一般來說它是最好的做法首先使用它們,並嘗試避免第二次(這可能會導致升級路徑出現問題)。

您的問題不清楚您是否要求創建具有表示管理權限的列的用戶表,或者您是否嘗試將管理用戶添加到現有的用戶表中。

如果你想創建一個用戶表,你將要做到以下幾點:

rails g model users is_administrator:boolean other_column:type 

東西沿着這些路線會產生遷移(和匹配模型)允許創建用戶,列中包含可被視爲管理權限的內容。

在另一方面,如果你已經有一個用戶表,並試圖添加從非管理員區分管理員的能力,你會更適合由這樣的事情:

rails g migration add_is_administrator_to_users is_administrator:boolean 

最後,如果你問如何將用戶添加到已經存在,並且包含列「is_administrator」表用戶,我會鼓勵你添加以下行至DB/seeds.rb:

User.create(is_administrator: true, other_column: 'other value') 

然後運行在控制檯下面一行

rake db:seed 

如果這沒有任何意義,我會鼓勵你在Active Record Migrations閱讀起來,或(在的情況下,你選擇利用第三方法)Active Record Seeds

+0

第二個選項爲我做了訣竅。謝謝 :) – Suraj

0

可以讓用戶和管理員在同一個表,並添加更多的列被稱爲「角色」,這將是布爾值,這將決定當前用戶是管理員或不

rails g migration user role:boolean name 

如果角色是不是假的它不是管理員。