我想有一个可以大规模分配的所有属性名称的列表.我需要一个自定义表单生成器,默认情况下不会添加无法批量分配的输入字段.

例如,如果我有以下模型:

class Post < ActiveRecord::Base
  attr_protected :account

  belongs_to :author

  validates_presence_of :title, :author
end

结果我想要[:author, :title]个.

推荐答案

邮递如果显式定义了attr_accessible,那么accessible_属性将覆盖它

除此之外,做这样的事情很笨重,但很有效:

Post.new.attributes.keys - Post.protected_attributes.to_a

Ruby-on-rails相关问答推荐

在Ruby on rails中,重复访问ActiveRecordModel返回相同的对象:预期行为还是错误?

我的 Ruby on Rails Web API 的 Docker 映像未在服务器上构建,因为它未与 ruby​​gems.org 连接

如何使用继承类 (STI) 获取 Ruby on Rails 类中基类的实例

Rails:当 id 方法为非标准时构建关联

Ruby on Rails form_with 不显示错误,卡在服务器端

Rails:用于创建固定长度 char(12) 列的迁移

使用brew 软件安装了 elasticsearch,但找不到配置文件

rails 3,简单数组的Kaminari分页

如何添加到序列化数组

使用 Ruby on Rails 从原始 IP 地址获取用户国家名称

使用 Devise 令牌登录,这是内置的吗?

水豚 click_link 与 :href 匹配

在 Rails/ActiveRecord 列名中使用问号字符

带有查询字符串参数的 Rails 动作缓存

Rails 3 中的猴子补丁

form_for 未定义的方法 `user_path'

submit_tag rails 表单中的 bootstrap 图标

如何从 rails 控制器操作发出 404 响应?

Rails 3:乘客找不到Bundle 程序安装的 git gem

未捕获的 ReferenceError:未定义 ReactDOM