ActiveRecord模型的保留名称

时间:2012-12-06 18:20:40

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.2 active-record-query

我非常认真地对待命名,所以我认为我的ActiveRecord模型的名字很难。但是,我经常提出一个名称,它与数据库或Ruby或Rails中的保留名称有一些冲突。模型或字段名称,例如setgroup。有时问题也不会立即显现出来。是否有一个列表,我们的模型名称和字段名称列表中没有使用的名称?

4 个答案:

答案 0 :(得分:44)

以下是一些可以帮助您入门的资源:

  1. Rails reserved words。这个似乎是相当最新的,最后更新于2010年2月。它甚至超越了rails并列出了一些与SQL的常见命名冲突。 dead
  2. Reserved words in rails。这里有一个heroku应用程序,其中包含一个可搜索的预留轨道词表。这个内容似乎是用户管理的,所以任何拥有帐户的人都可以添加一个新单词。

答案 1 :(得分:7)

列名type也是保留的,不会显示在MyModel.methods列表中!

The single-table inheritance mechanism failed to locate the subclass: 'f'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for storing the inheritance class or overwrite Project.inheritance_column to use another column for that information.

有没有人有使用categoryclasstransactiongroup等名称的经验?当我在数据库中对数据进行分类时,所有人都会想到这一点......

答案 2 :(得分:5)

以下是 Rails 5.1.5 的列表:

!
!=
!~
<=>
==
===
=~
[]
[]=
__binding__
__callbacks
__callbacks?
__id__
__send__
_before_commit_callbacks
_before_commit_without_transaction_enrollment_callbacks
_commit_callbacks
_commit_without_transaction_enrollment_callbacks
_create_callbacks
_destroy
_destroy_callbacks
_find_callbacks
_initialize_callbacks
_read_attribute
_reflections
_reflections?
_rollback_callbacks
_rollback_without_transaction_enrollment_callbacks
_run_before_commit_callbacks
_run_before_commit_without_transaction_enrollment_callbacks
_run_commit_callbacks
_run_commit_without_transaction_enrollment_callbacks
_run_create_callbacks
_run_destroy_callbacks
_run_find_callbacks
_run_initialize_callbacks
_run_rollback_callbacks
_run_rollback_without_transaction_enrollment_callbacks
_run_save_callbacks
_run_touch_callbacks
_run_update_callbacks
_run_validate_callbacks
_run_validation_callbacks
_save_callbacks
_touch_callbacks
_update_callbacks
_validate_callbacks
_validation_callbacks
_validators
_validators?
`
accessed_fields
acts_like?
add_to_transaction
aggregate_reflections
aggregate_reflections?
as_json
assign_attributes
association
association_cached?
attribute_aliases
attribute_aliases?
attribute_before_last_save
attribute_change
attribute_change_to_be_saved
attribute_changed?
attribute_changed_in_place?
attribute_for_inspect
attribute_in_database
attribute_method_matchers
attribute_method_matchers?
attribute_missing
attribute_names
attribute_present?
attribute_previously_changed?
attribute_was
attributes
attributes=
attributes_before_type_cast
attributes_changed_by_setter
attributes_in_database
becomes
becomes!
before_committed!
blank?
byebug
cache_key
cache_timestamp_format
cache_timestamp_format?
changed
changed?
changed_attribute_names_to_save
changed_attributes
changed_for_autosave?
changes
changes_applied
changes_internally_applied
changes_to_save
class
class_eval
clear_attribute_changes
clear_changes_information
clone
column_for_attribute
committed!
connection_handler
debugger
decrement
decrement!
deep_dup
default_connection_handler
default_connection_handler?
default_scope_override
default_scopes
default_timezone
define_singleton_method
defined_enums
defined_enums?
delete
destroy
destroy!
destroyed?
destroyed_by_association
destroyed_by_association=
display
dump_schema_after_migration
dump_schemas
dup
duplicable?
encode_with
enum_for
eql?
equal?
error_on_ignored_order
error_on_ignored_order_or_limit
errors
extend
freeze
from_json
frozen?
gem
has_attribute?
has_changes_to_save?
hash
html_safe?
id
id=
id?
id_before_type_cast
id_in_database
id_was
in?
include_root_in_json
include_root_in_json?
increment
increment!
index_nested_attribute_errors
init_with
initialize_internals_callback
inspect
instance_eval
instance_exec
instance_of?
instance_values
instance_variable_defined?
instance_variable_get
instance_variable_names
instance_variable_set
instance_variables
invalid?
is_a?
itself
kind_of?
load_dependency
lock!
lock_optimistically
lock_optimistically?
locking_enabled?
logger
mark_for_destruction
marked_for_destruction?
method
method_missing
methods
model_name
nested_attributes_options
nested_attributes_options?
new_record?
nil?
no_touching?
object_id
partial_writes
partial_writes?
persisted?
pluralize_table_names
pluralize_table_names?
populate_with_current_scope_attributes
presence
presence_in
present?
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
previous_changes
primary_key_prefix_type
private_methods
protected_methods
pry
public_method
public_methods
public_send
query_attribute
quoted_id
raw_write_attribute
read_attribute
read_attribute_before_type_cast
read_attribute_for_serialization
read_attribute_for_validation
readonly!
readonly?
record_timestamps
record_timestamps=
record_timestamps?
reload
remote_byebug
remove_instance_variable
require_dependency
require_or_load
respond_to?
respond_to_without_attributes?
restore_attributes
rollback_active_record_state!
rolledback!
run_callbacks
save
save!
saved_change_to_attribute
saved_change_to_attribute?
saved_changes
saved_changes?
schema_format
send
serializable_hash
singleton_class
singleton_method
singleton_methods
skip_time_zone_conversion_for_attributes
skip_time_zone_conversion_for_attributes?
slice
store_full_sti_class
store_full_sti_class?
suppress_warnings
table_name_prefix
table_name_prefix?
table_name_suffix
table_name_suffix?
taint
tainted?
tap
time_zone_aware_attributes
time_zone_aware_types
time_zone_aware_types?
timestamped_migrations
to_enum
to_gid
to_gid_param
to_global_id
to_json
to_key
to_model
to_param
to_partial_path
to_query
to_s
to_sgid
to_sgid_param
to_signed_global_id
to_yaml
toggle
toggle!
touch
touch_later
transaction
trust
try
try!
type_for_attribute
unloadable
untaint
untrust
untrusted?
update
update!
update_attribute
update_attributes
update_attributes!
update_column
update_columns
valid?
validate
validate!
validates_absence_of
validates_acceptance_of
validates_confirmation_of
validates_exclusion_of
validates_format_of
validates_inclusion_of
validates_length_of
validates_numericality_of
validates_presence_of
validates_size_of
validates_with
validation_context
warn_on_records_fetched_greater_than
will_save_change_to_attribute?
with_lock
with_options
with_transaction_returning_status
write_attribute
yield_self

你可以用

获得它
ActiveRecord::Base.instance_methods.sort

答案 3 :(得分:3)

打开rails控制台并输入类型 MyModel.methods

列出的所有方法都是保留字。