如何从模型实例中发现可访问的属性名称?

这个答案说你可以做object.attribute_names来获取模型实例的属性名称列表。

但有没有办法获得所有可访问属性名称的列表?

您可以使用accessible_attributes

您必须提供角色,因为不同的角色可以具有不同的可访问属性。

如果要从模型实例获取属性,可以使用以下代码:

 @my_model.class.accessible_attributes(:admin) # Returns array of symbols