Railsモデルのメソッドを見ると、ときどきself.method_name
と表示され、時にはmethod_name
と表示されます。どのような違いがあり、いつ使用するかを知るためのガイドはself.
であり、そうでない場合は何ですか?Railsモデルメソッドself。 vs plain
31
A
答えて
43
self.method_nameはクラスメソッドを示します。 method_nameはインスタンスメソッドを示します。
クラスとインスタンスのメソッドについてもっと詳しく読むことができますat this blog post、またはもう少し公式なものをお望みなら、Programming Ruby class section。
24
1)メソッド定義に適用すると、 'self。'それはクラスメソッドになりますが、プレーンはインスタンスメソッドになります。
2)モデルの属性に適用する場合は、属性を変更するときは常に自己を使用することが重要ですが、そうでない場合は必要ありません。例えばので
:upstair答えよりも
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end
関連する問題
- 1. aar vs "plain module"の利点
- 2. Railsでのモデルメソッドの定義
- 3. Python "self" convention __init__ vs method
- 4. Rails 3 - モデルメソッドによる選択?
- 5. Rails 3、モデルメソッド/計算された属性
- 6. モデルメソッドから検証エラーメッセージを返すRails
- 7. Ruby on Rails:<< self
- 8. Rails 1 vs. Rails 2のチェックボックス
- 9. haml vs haml-rails
- 10. (Ruby、Rails)モジュールとライブラリのSELFのコンテキスト...?
- 11. rails - モデルメソッド、(PaperClipイメージURLをS3から取得する)
- 12. rails 3 - ビューからモデルメソッドを呼び出す
- 13. Rails - モデルメソッドの多重実行を防止する
- 14. コンソールでrails 3モデルメソッドを呼び出す方法
- 15. Railsでparamsを使ってモデルメソッドを呼び出す
- 16. rails - begin/rescueで複数のモデルメソッドを実行する
- 17. Rails 3:sum()を使ってモデルメソッドを使用する
- 18. 特定の時間にモデルメソッドを呼び出す(Ruby on Rails)
- 19. Djangoモデルメソッド - create_or_update
- 20. Sails.jsモデルメソッド(非インスタンス)
- 21. Rails 3 Search:Searchlogic vs Thinking_Sphinx
- 22. Sinatra vs Rails for webservice
- 23. Rails Routes vs URLパラメータ
- 24. Rails 5:form_for vs form_with
- 25. Rails Engine vs. Rackアプリケーション
- 26. Helpers vs Controller in Rails
- 27. rails db:migrate vs rake db:migrate
- 28. 使用する宝石:emberjs-rails vs rasputin vs ember-rails?
- 29. Railsのコード共有:gem vs plugin vs submodule?
- 30. Djangoとモデルメソッドのテスト
さらに良いです。 – neversion
ポイント2)はナッツを運転していました。ありがとう! –