2013-09-26 20 views
0

我是ruby和rails的新手,我試圖讓可用角色顯示在下拉列表中(它用於在手動創建時運行,但是我最近發現了rails_admin),我已經閱讀了很多,(我沒有角色模型或控制器,因爲角色不會改變,一個用戶只能有1個角色)。作爲一個下拉字段使用rails和rails常量

注意:我已經安裝了Devise和CanCan的寶石。

所以我在我的user.rb模型上存儲了這個常量角色,它存儲了角色,我希望在使用rails_admin創建或編輯用戶時,角色代替簡單的輸入字段,顯示由名爲ROLES的常量填充的下拉列表。

這是我到目前爲止有:

class User < ActiveRecord::Base 
    ROLES = %w(Admininistrator C1 D1 M1 M2).freeze 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 


    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :role 

    #Tried this, no luck 
def role_enum 
    [['Administrator'],['C1'],['D1'], ['M1'], ['M2']] 
end 
#And this, also no luck 
def ROLES_enum 
    [['Administrator'],['C1'],['D1'], ['M1'], ['M2']] 
end 
end 

而且還試圖對rails_admin.rb文件

config.model 'User' do 
    configure :role, :string 
end 

沒有運氣在取消這個,就像我說的,我是新來的都Ruby和Rails,但我有一些MVC和PHP的框架Symfony的經驗,但這對我來說是全新的。我會申請任何幫助,我可以得到。

回答

0

試試這個:

def role_enum 
    ['Administrator','C1','D1','M1', 'M2'] 
end 
+0

我沒有看法,我不得不重寫rails_admin的模板,這正是我不想做的事。我這樣做,當我沒有rails_admin – Splendonia

+0

更新我的答案。 –

+0

我認爲這是一個其他問題,在我遇到了路由問題之後,我卸載了rails_admin,並重新安裝了它,但它顯示的是角色而不是儀表板上的電子郵件,我所做的只是取消註釋配置configure:email,:string和commented config configure:role:string,因爲「def role_enum」似乎有效 – Splendonia