Ruby on rails 将属性应用于给定角色的所有字段

Ruby on rails 将属性应用于给定角色的所有字段,ruby-on-rails,attr-accessible,Ruby On Rails,Attr Accessible,我正在寻找一种方法,可以轻松地将attr_应用于给定角色模型中的所有字段,这样我就可以在管理控制台中批量分配所有字段。我想这样做: class User < ActiveRecord::Base attr_accessible :name attr_accessible :all, :as => :admin end class用户:admin 结束 使用:所有这些显然都不起作用。有没有一种简单的方法可以将attr_access

我正在寻找一种方法,可以轻松地将attr_应用于给定角色模型中的所有字段,这样我就可以在管理控制台中批量分配所有字段。我想这样做:

    class User < ActiveRecord::Base
         attr_accessible :name
         attr_accessible :all, :as => :admin
    end
class用户:admin
结束

使用:所有这些显然都不起作用。有没有一种简单的方法可以将attr_accessible应用到所有字段,而不必列出所有字段,因为我有很多字段,我不想每次添加字段时都要记住这样做。

我恳请您确实花时间添加每个字段,因为这为您提供了一个机会,让您思考是否确实需要访问它。也就是说,这可以实现:

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

我想知道列的名称而不是列:

(column_names - ['col1', 'col2', 'col3']).each do |column|
  attr_accessible column.to_sym
end

可能需要
attr\u accessible column.name.to\u sym,:as=>:admin
这很有效,谢谢Josh。我希望能够手动编辑我的管理面板中的任何字段,这就是为什么我只想添加所有字段。对于在默认角色下添加到attr_的字段,我非常谨慎。我只是想澄清一下,我所做的不会造成安全风险,对吗?非管理员用户无法指定其批量分配的角色,对吗?据我所知,这是安全的。如何在每个模型中运行此行,而不必在我创建的每个模型中复制/粘贴此行?请注意。看到这个了吗
attr_accessible *column_names, :as => :admin