2011-08-30 9 views
8
Ap::Application.routes.draw do 
    resources :accounts 
end 

「resources」メソッドが属するクラスまたはモジュールを知りたい。提供された検索テキストボックスのhttp://apidock.com/rails/の "resources"メソッドを検索すると、メソッド名 "resources"を持つクラスのリストが表示されます。混乱し、方法の起源を知る。メソッドが属しているクラスをレールで決定する

私が使用できるすべてのコマンドは、その出所を見ることができますか?

質問は初心者レベルのビットです。そのメソッドは、渡されたブロックで何かをしなければならないので、

おかげ

+0

初心者の質問は一切ありません。 Railsはたくさんの内部構造を隠していますが、一般的な理由は通常、知る必要はないからです。 – Chowlett

答えて

2

Rubyはオブジェクト指向言語です。のコンテキストでは、includes Resourcesのコンテキストで実行されます。方法はRubyでオブジェクトではありませんしながら、あなたは、あなたの質問にメソッドを表すMethodオブジェクトを与えるためにルビーを求めることができ、その後、あなたは単にMethodはあなたにその所有者を与えることを伝えることができます:

Ap::Application.routes.draw do 
    p method(:resources).owner 
end 
6

resourcesの検索よりも啓発は、drawを探している。

確かに、私たちは、ことを示している、drawのソースコードを検索します(最終的には)定義するresources

+0

'resources'の検索結果には2つのクラス(名前はcapitalで始まる)と3つのメソッドが含まれています。メソッドの1つは> = v1.2.0 <= v2.3.8と表示されていますので、廃止されました.1つは 'DeprecatedMapper'のメンバであり、それもそうであることを示唆しています。 – Chowlett

+0

多くのRailsはモジュールに分割されています。これはソースを整理するのには向いていますが、ドキュメントは断片化してしまいます。これを行うより良い方法があればいいと思う。 – tadman

+0

ありがとうChowlett。私はモジュール 'ActionDispatch :: Routing :: Mapper :: Resources'を見つけることができました。ここでは、リソースメソッドがあなたのステップに従って定義されています。すべてのメソッドに対してこのメ​​ソッドを適用できるかどうかは不明です。申し訳ありませんが、stackoverflowは1つの答えが正しいとマークすることができます。しかし確かに1つの投票。 :-)助けてくれてありがとう。 – rajkamal

0

は、CURRENT_USERを想定しますUserクラスのインスタンスである場合、method関数を呼び出して、method_nameがクラスUserに属しているかどうかを確認できます。例

current_user.method(:method_name).owner 
User.method(:method_name).owner 

希望すると助かります!

関連する問題