method
define_attr_method
Related methods
- Class methods (218)
- === (<= v3.2.13)
- abstract_class? (<= v3.1.0)
- accessible_attributes (<= v2.3.8)
- active_connection_name (<= v2.1.0)
- add_conditions! (<= v2.3.8)
- add_group! (<= v2.3.8)
- add_joins! (<= v2.3.8)
- add_limit! (<= v2.3.8)
- add_lock! (<= v2.3.8)
- add_order! (<= v2.3.8)
- aggregate_mapping (<= v3.1.0)
- all (<= v2.3.8)
- all_attributes_exists? (<= v3.1.0)
- allow_concurrency (<= v2.3.8)
- allow_concurrency= (<= v2.3.8)
- arel_engine (<= v3.2.13)
- arel_table (<= v3.2.13)
- array_of_strings? (<= v2.3.8)
- attr_accessible (<= v2.3.8)
- attribute_condition (<= v2.3.8)
- attribute_method? (<= v3.1.0)
- attribute_names (<= v3.1.0)
- attributes_protected_by_def... (<= v3.1.0)
- attr_protected (<= v2.3.8)
- attr_readonly (<= v3.1.0)
- base_class (<= v3.1.0)
- before_remove_const (<= v3.1.0)
- benchmark (<= v2.3.8)
- build_default_scope (<= v3.1.0)
- class_name (<= v2.3.8)
- class_name_of_active_record... (<= v2.3.8)
- class_of_active_record_desc... (<= v3.1.0)
- clear_active_connection_name (<= v2.1.0)
- clear_active_connections! (<= v3.2.13)
- clear_all_cached_connections! (<= v2.1.0)
- clear_cache! (<= v3.1.0)
- clear_connection_cache! (<= v1.0.0)
- clear_reloadable_connections! (<= v2.1.0)
- colorize_logging (<= v3.0.9)
- colorize_logging= (<= v3.0.9)
- column_defaults (<= v3.1.0)
- column_methods_hash (<= v3.1.0)
- column_names (<= v3.1.0)
- columns (<= v3.1.0)
- columns_hash (<= v3.1.0)
- compute_table_name (<= v3.1.0)
- compute_type (<= v3.1.0)
- configurations (<= v3.2.13)
- connected? (<= v3.2.13)
- connection (<= v3.2.13)
- connection= (<= v2.1.0)
- connection_config (<= v3.2.13)
- connection_handler (<= v3.2.13)
- connection_id (<= v3.2.13)
- connection_id= (<= v3.2.13)
- connection_pool (<= v3.2.13)
- construct_attributes_from_a... (<= v3.0.9)
- construct_conditions_from_a... (<= v1.1.6)
- construct_finder_arel (<= v3.1.0)
- construct_finder_sql (<= v2.3.8)
- content_columns (<= v3.1.0)
- count (<= v1.0.0)
- count_by_sql (<= v3.1.0)
- create (<= v3.1.0)
- current_scope (<= v3.1.0)
- current_scope= (<= v3.1.0)
- current_scoped_methods (<= v3.0.9)
- decrement_counter (<= v2.3.8)
- default_scope (<= v3.1.0)
- default_select (<= v2.3.8)
- default_timezone (<= v3.2.13)
- define_attr_method (<= v2.3.8)
- delete (<= v2.3.8)
- delete_all (<= v2.3.8)
- descends_from_active_record? (<= v3.1.0)
- destroy (<= v2.3.8)
- destroy_all (<= v2.3.8)
- determine_deprecated_finder (<= v1.2.6)
- determine_finder (<= v2.1.0)
- determine_instantiator (<= v2.1.0)
- encode_quoted_value (<= v3.1.0)
- establish_connection (<= v3.2.13)
- evaluate_default_scope (<= v3.1.0)
- exists? (<= v2.3.8)
- expand_attribute_names_for_... (<= v3.1.0)
- expand_hash_conditions_for_... (<= v3.1.0)
- expand_id_conditions (<= v2.3.8)
- expand_range_bind_variables (<= v3.1.0)
- extract_attribute_names_fro... (<= v2.1.0)
- extract_options_from_args! (<= v1.0.0)
- find (<= v2.3.8)
- find_by_sql (<= v3.1.0)
- finder_needs_type_condition? (<= v3.1.0)
- find_every (<= v2.3.8)
- find_from_ids (<= v2.3.8)
- find_initial (<= v2.3.8)
- find_last (<= v2.3.8)
- find_one (<= v2.3.8)
- find_some (<= v2.3.8)
- find_sti_class (<= v3.1.0)
- first (<= v2.3.8)
- full_table_name_prefix (<= v3.1.0)
- generated_feature_methods (<= v3.2.13)
- get_primary_key (<= v2.3.8)
- human_attribute_name (<= v2.3.8)
- human_name (<= v2.3.8)
- i18n_scope (<= v3.1.0)
- ignore_default_scope= (<= v3.1.0)
- ignore_default_scope? (<= v3.1.0)
- increment_counter (<= v2.3.8)
- inheritance_column (<= v3.1.0)
- inheritance_column= (<= v3.1.0)
- inherited (<= v3.2.13)
- initialize_generated_modules (<= v3.2.13)
- inspect (<= v3.2.13)
- instantiate (<= v3.1.0)
- last (<= v2.3.8)
- log_connections (<= v2.1.0)
- logger (<= v3.2.13)
- lookup_ancestors (<= v3.1.0)
- matches_dynamic_finder? (<= v2.1.0)
- matches_dynamic_finder_with... (<= v2.1.0)
- merge_conditions (<= v2.3.8)
- merge_includes (<= v2.3.8)
- merge_joins (<= v2.3.8)
- method_missing (<= v3.1.0)
- mysql2_connection (<= v3.2.13)
- mysql_connection (<= v3.2.13)
- new (<= v3.2.13)
- parse_config! (<= v1.2.6)
- parse_sqlite_config! (<= v2.3.8)
- pluralize_table_names (<= v3.1.0)
- postgresql_connection (<= v3.2.13)
- primary_key (<= v2.3.8)
- primary_key_prefix_type (<= v3.1.0)
- protected_attributes (<= v2.3.8)
- quote_bound_value (<= v3.1.0)
- quoted_table_name (<= v3.1.0)
- quote_value (<= v3.1.0)
- raise_if_bind_arity_mismatch (<= v3.1.0)
- read_methods (<= v1.0.0)
- readonly_attributes (<= v3.1.0)
- relation (<= v3.2.13)
- remove_connection (<= v3.2.13)
- remove_stale_cached_threads! (<= v2.1.0)
- replace_bind_variables (<= v3.1.0)
- replace_named_bind_variables (<= v3.1.0)
- require_mysql (<= v2.1.0)
- reset_column_information (<= v3.1.0)
- reset_column_information_an... (<= v3.0.9)
- reset_counters (<= v2.3.8)
- reset_primary_key (<= v2.3.8)
- reset_scoped_methods (<= v3.0.9)
- reset_sequence_name (<= v3.1.0)
- reset_subclasses (<= v3.0.9)
- reset_table_name (<= v3.1.0)
- respond_to? (<= v3.1.0)
- retrieve_connection (<= v3.2.13)
- reverse_sql_order (<= v2.3.8)
- safe_to_array (<= v2.3.8)
- sanitize (<= v3.1.0)
- sanitize_conditions (<= v3.1.0)
- sanitize_sql (<= v3.1.0)
- sanitize_sql_array (<= v3.1.0)
- sanitize_sql_for_assignment (<= v3.1.0)
- sanitize_sql_for_conditions (<= v3.1.0)
- sanitize_sql_hash (<= v3.1.0)
- sanitize_sql_hash_for_assig... (<= v3.1.0)
- sanitize_sql_hash_for_condi... (<= v3.1.0)
- schema_format (<= v3.2.13)
- scope (<= v2.3.8)
- scoped? (<= v2.3.8)
- scoped_methods (<= v3.0.9)
- scoped_methods= (<= v1.0.0)
- self_and_descendants_from_a... (<= v2.3.8)
- self_and_descendents_from_a... (<= v2.2.1)
- sequence_name (<= v3.1.0)
- sequence_name= (<= v3.1.0)
- serialize (<= v3.1.0)
- serialized_attributes (<= v3.0.9)
- set_inheritance_column (<= v3.1.0)
- set_locking_column (<= v1.1.6)
- set_primary_key (<= v2.3.8)
- set_readonly_option! (<= v2.3.8)
- set_sequence_name (<= v3.1.0)
- set_table_name (<= v3.1.0)
- silence (<= v2.3.8)
- single_threaded_active_conn... (<= v2.1.0)
- single_threaded_scoped_methods (<= v2.1.0)
- sqlite3_connection (<= v3.2.13)
- sqlite_connection (<= v2.3.8)
- sti_name (<= v3.1.0)
- subclasses (<= v3.0.9)
- symbolized_base_class (<= v3.1.0)
- symbolized_sti_name (<= v3.1.0)
- table_exists? (<= v3.1.0)
- table_name (<= v3.1.0)
- table_name= (<= v3.1.0)
- table_name_prefix (<= v3.1.0)
- table_name_suffix (<= v3.1.0)
- threaded_connections (<= v1.0.0)
- threaded_connections= (<= v1.0.0)
- thread_safe_active_connections (<= v2.1.0)
- thread_safe_scoped_methods (<= v2.1.0)
- timestamped_migrations (<= v3.2.13)
- type_condition (<= v3.1.0)
- type_name_with_module (<= v2.3.8)
- undecorated_table_name (<= v3.1.0)
- unscoped (<= v3.1.0)
- update (<= v2.3.8)
- update_all (<= v2.3.8)
- update_counters (<= v2.3.8)
- validate_find_options (<= v2.3.8)
- verification_timeout (<= v2.3.8)
- verification_timeout= (<= v2.3.8)
- verify_active_connections! (<= v2.1.0)
- with_exclusive_scope (<= v3.1.0)
- with_scope (<= v3.1.0)
- Instance methods (107)
- <=> (<= v3.2.13)
- == (<= v3.2.13)
- [] (<= v3.0.9)
- []= (<= v3.0.9)
- arel_attributes_values (<= v3.1.0)
- assign_attributes (<= v3.1.0)
- assign_multiparameter_attri... (<= v3.1.0)
- attribute_for_inspect (<= v3.1.0)
- attribute_names (<= v3.1.0)
- attribute_present? (<= v3.1.0)
- attributes (<= v3.1.0)
- attributes= (<= v3.1.0)
- attributes_before_type_cast (<= v2.3.8)
- attributes_from_column_defi... (<= v2.3.8)
- attributes_protected_by_def... (<= v2.3.8)
- attributes_with_quotes (<= v2.3.8)
- becomes (<= v2.3.8)
- cache_key (<= v3.1.0)
- clear_timestamp_attributes (<= v3.1.0)
- clone (<= v2.3.8)
- clone_attributes (<= v3.1.0)
- clone_attribute_value (<= v3.1.0)
- column_for_attribute (<= v3.1.0)
- comma_pair_list (<= v3.1.0)
- connection (<= v3.2.13)
- convert_number_column_value (<= v3.1.0)
- create (<= v2.3.8)
- create_or_update (<= v2.3.8)
- decrement (<= v2.3.8)
- decrement! (<= v2.3.8)
- define_question_method (<= v1.2.6)
- define_read_method (<= v1.2.6)
- define_read_method_for_seri... (<= v1.2.6)
- define_read_methods (<= v1.2.6)
- delete (<= v2.3.8)
- destroy (<= v2.3.8)
- destroyed? (<= v2.3.8)
- dup (<= v3.2.13)
- encode_with (<= v3.2.13)
- ensure_proper_type (<= v3.1.0)
- eql? (<= v3.2.13)
- evaluate_read_method (<= v1.2.6)
- execute_callstack_for_multi... (<= v3.1.0)
- extract_callstack_for_multi... (<= v3.1.0)
- extract_max_param_for_multi... (<= v3.1.0)
- find_parameter_position (<= v3.1.0)
- freeze (<= v3.2.13)
- frozen? (<= v3.2.13)
- has_attribute? (<= v3.1.0)
- hash (<= v3.2.13)
- id (<= v2.3.8)
- id= (<= v2.3.8)
- id_before_type_cast (<= v2.3.8)
- increment (<= v2.3.8)
- increment! (<= v2.3.8)
- initialize_copy (<= v3.0.9)
- initialize_dup (<= v3.2.13)
- init_with (<= v3.2.13)
- inspect (<= v3.2.13)
- instantiate_time_object (<= v3.1.0)
- interpolate_and_sanitize_sql (<= v3.0.9)
- interpolate_sanitized_sql (<= v3.0.9)
- interpolate_sql (<= v3.0.0)
- log_protected_attribute_rem... (<= v2.3.8)
- mass_assignment_options (<= v3.1.0)
- mass_assignment_role (<= v3.1.0)
- method_missing (<= v1.2.6)
- new_record? (<= v2.3.8)
- object_from_yaml (<= v3.0.9)
- populate_with_current_scope... (<= v3.1.0)
- query_attribute (<= v1.2.6)
- quote (<= v1.2.6)
- quote_columns (<= v3.1.0)
- quoted_column_names (<= v2.3.8)
- quoted_comma_pair_list (<= v3.1.0)
- quoted_id (<= v3.1.0)
- quote_value (<= v3.1.0)
- read_attribute (<= v1.2.6)
- read_attribute_before_type_... (<= v1.2.6)
- read_date_parameter_value (<= v3.1.0)
- readonly! (<= v3.2.13)
- readonly? (<= v3.2.13)
- read_other_parameter_value (<= v3.1.0)
- read_time_parameter_value (<= v3.1.0)
- read_value_from_parameter (<= v3.1.0)
- reload (<= v2.3.8)
- remove_attributes_protected... (<= v2.3.8)
- remove_readonly_attributes (<= v2.3.8)
- respond_to? (<= v1.2.6)
- save (<= v2.3.8)
- save! (<= v2.3.8)
- set_serialized_attributes (<= v3.1.0)
- to_ary (<= v3.2.13)
- toggle (<= v2.3.8)
- toggle! (<= v2.3.8)
- to_param (<= v3.1.0)
- to_xml (<= v1.1.6)
- to_yaml (<= v3.2.13)
- type_cast_attribute_value (<= v3.1.0)
- unserializable_attribute? (<= v1.2.6)
- unserialize_attribute (<= v1.2.6)
- update (<= v2.3.8)
- update_attribute (<= v2.3.8)
- update_attributes (<= v2.3.8)
- update_attributes! (<= v2.3.8)
- write_attribute (<= v1.2.6)
- yaml_initialize (<= v3.2.13)
= private
= protected
Method deprecated or moved
This method is deprecated or moved on the latest stable version. The last existing version (v2.3.8) is shown here.
define_attr_method(name, value=nil, &block)
private
Defines an "attribute" method (like inheritance_column or table_name). A new (class) method will be created with the given name. If a value is specified, the new method will return that value (as a string). Otherwise, the given block will be used to compute the value of the method.
The original method will be aliased, with the new name being prefixed with "original_". This allows the new method to access the original value.
Example:
class A < ActiveRecord::Base define_attr_method :primary_key, "sysid" define_attr_method( :inheritance_column ) do original_inheritance_column + "_id" end end
Show source
# File activerecord/lib/active_record/base.rb, line 2066 def define_attr_method(name, value=nil, &block) sing = class << self; self; end sing.send :alias_method, "original_#{name}", name if block_given? sing.send :define_method, name, &block else # use eval instead of a block to work around a memory leak in dev # mode in fcgi sing.class_eval "def #{name}; #{value.to_s.inspect}; end" end end