2013-01-21 18 views
1

我正在尋找一種輕鬆將attr_accessible應用於模型中給定角色的所有字段的方法,以便我可以批量分配管理控制檯中的所有字段。我想要做這樣的事情:將attr_accessible應用於給定角色的所有字段

class User < ActiveRecord::Base 
     attr_accessible :name 
     attr_accessible :all, :as => :admin 
    end 

使用:所有的顯然是行不通的。有沒有一種簡單的方法,我可以將attr_accessible應用於所有字段,而無需全部列出,因爲我有很多這樣的字段,並且我不想每次添加字段時都要記住這樣做。

+0

您使用的康康舞? –

回答

1

我會懇請您真正花時間添加每個領域,因爲這爲您提供了一個機會,讓您思考它是否真的需要attr_accessible。這就是說,這是可以實現的:

columns.each do |column| 
    attr_accessible column.name.to_sym, :as => :admin 
end 
+1

大概想'attr_accessible column.name.to_sym,:as =>:admin' –

+0

是的,很好的捕獲。謝謝! –

+0

這工作,謝謝喬希。我希望能夠手動編輯管理面板中的任何字段,這就是爲什麼我只想將它們全部添加。我非常小心在默認角色下添加到attr_accessible的哪些字段。 只是爲了澄清,做我所做的事情不會導致安全風險,對吧?非管理員用戶無法指定他們正在批量分配的角色,對嗎? –

0

我想知道有COLUMN_NAMES而不是列:

(column_names - ['col1', 'col2', 'col3']).each do |column| 
    attr_accessible column.to_sym 
end 
1
attr_accessible *column_names, :as => :admin 
+0

我怎樣才能讓這條生產線在每個模型中運行,而不必在我創建的每個模型中複製/粘貼這條生產線? – user566245

相關問題