下面將列出用戶類有基類對象沒有方法...
>> User.methods - Object.methods
=> ["field_types", "maximum", "create!", "active_connections", "to_dropdown",
"content_columns", "su_pw?", "default_timezone", "encode_quoted_value",
"reloadable?", "update", "reset_sequence_name", "default_timezone=",
"validate_find_options", "find_on_conditions_without_deprecation",
"validates_size_of", "execute_simple_calculation", "attr_protected",
"reflections", "table_name_prefix", ...
請注意,methods
是Classes和Class實例的一種方法。
下面是我的User類有方法,這些方法不是在ActiveRecord的基類:
>> User.methods - ActiveRecord::Base.methods
=> ["field_types", "su_pw?", "set_login_attr", "create_user_and_conf_user",
"original_table_name", "field_type", "authenticate", "set_default_order",
"id_name?", "id_name_column", "original_locking_column", "default_order",
"subclass_associations", ...
# I ran the statements in the console.
注意,如用戶類中定義的(多)的has_many關係的結果而創建的方法是methods
調用的結果中不是。
添加請注意:has_many不直接添加方法。相反,ActiveRecord機制使用Ruby method_missing
和responds_to
技術來即時處理方法調用。因此,這些方法未在methods
方法結果中列出。
爲了澄清,您希望可以在'@ current_user'上調用方法嗎? – 2011-12-21 19:28:28
@Dirk,歡迎來到stackoverflow!請記住「檢查」最能回答您問題的答案。對於任何問題,您也可以提出任何答案,並認爲您認爲有用/有幫助。 – 2011-12-22 01:04:41