我把命名很认真,所以我觉得很辛苦谈好名字我的ActiveRecord模型。 不过,我经常拿出一个名称,它与保留的名称有些冲突,无论是在数据库或Ruby或者Rails。 型号或字段名像set
或group
。 有时问题不会立即显现要么。 有没有我们不能在我们的模型名称中使用的名称列表的地方,并为现场名称的列表?
Answer 1:
这里有一对夫妇的资源,让你开始的:
-
Rails的保留字 。这一次似乎是相当最新的,最近更新于2010年2月份甚至超越了轨道,并列出与SQL一些常见的命名冲突。死 - 在轨保留字 。 这里住着的Heroku应用为特色的保留轨字搜索表。 在这一个内容似乎是用户管理,所以任何人都用一个账户可以添加一个新词。
Answer 2:
列名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.
有没有人有类似名称的体验category
, class
, transaction
, group
,等等? 所有跳进脑海,当我我的数据库中的数据进行分类....
Answer 3:
这里的名单像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
Answer 4:
打开一个轨道控制台和类型MyModel.methods
列出的所有方法都是保留字。
文章来源: Reserved names with ActiveRecord models