以下は、Userクラスは、基本Objectクラスが持っていないことを持っているメソッドの一覧が表示されます...
>> 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.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.
注Userクラスで定義されている(多くの)has_manyの関係の結果として作成方法はをしていること:ここでは
はActiveRecordの基底クラスではありません、私のUserクラスが持つメソッドをですmethods
呼び出しの結果ではではありません。
注:has_manyはメソッドを直接追加しません。代わりに、ActiveRecordマシンはRuby method_missing
とresponds_to
技術を使用して、即座にメソッド呼び出しを処理します。その結果、メソッドはmethods
メソッドの結果にはリストされません。
明確にするために、メソッドを '@ current_user'で呼び出し可能にしますか? –
@Dirk、ようこそ、stackoverflowへ!質問に最もよく答える答えを「チェック」することを忘れないでください。また、どんな質問に対しても、あなたが役に立つ/役立つと感じる答えをすべてアップしてください。 –