Ruby と Rails は初めてのようです。Ruby では、クラスはオブジェクトの型の記述のようなものです (ただし、クラス自体もオブジェクトです)。クラスが定義されている場合はいつでも、 と同様に、その新しいインスタンスを作成できますString.new
。クラスの名前は常に大文字であることに注意してください。
クラス メソッドは、クラス自体で動作するメソッドです。メソッドはクラスの大文字の名前に付けられるため ( のようにString.new
)、メソッドがクラス メソッドであることがわかります。一方、インスタンス メソッドは、クラス自体ではなく、クラスのインスタンスでのみ機能します (例: str = String.new; str.capitalize!
)。インスタンスは実際に作業しているものであるため、通常はクラス メソッドよりも多くのインスタンス メソッドがあります (new
は最も一般的なクラス メソッドです)。
他の人がここで述べたように、String は Rails モデルではありません。これは基本的な Ruby クラスです。Rails で作業しているときは、すべての通常の Ruby クラスだけでなく、Rails のソース コード内で定義されている他のクラスやメソッドにもアクセスできます。そのため、Rails 自体では String は定義されていませんが、Rails は文字列用の便利なインスタンス メソッドをいくつか提供しています (例: str.to_date
)。
Rails のモデルは、実際には単なる Ruby クラスです。モデルの仕組みを理解するには、Ruby のクラスがどのように機能するかを理解しておく必要があります。Rails モデルが特別なのは、ActiveRecord として知られる Rails のソース コードで定義されたクラスから継承することです (Ruby のどのクラスも別のクラスから継承できます。これはその一例にすぎません)。ActiveRecord には多数のクラス メソッドとインスタンス メソッドがあり、それらは ActiveRecord から継承されているため、モデルでも使用できます。たとえば、Person というクラス (モデル) がある場合、Person.find(id)
クラス メソッドを自動的に使用して、データベース内の Person クラスの特定のインスタンスを検索できます。person.save
インスタンスをデータベースに保存するインスタンス メソッドもあります。
私が最初に始めたとき、これらすべてが私を混乱させたので、私の最善のアドバイスは、Rails を学ぶときに Ruby に慣れることです。