私は愛を使用して愛する?たとえば、 'animals'テーブルの 'alive?'のようなブール値フィールドの場合非常に明白です。 どこで定義しますか?テーブルの移行を作成するときにdbフィールドに名前を付けますか?そうは思いません。 それはbooleanフィールドのために自動的ですか、またはdef aliveのような動物のためのアクティブなレコードモデルクラスに少しのメソッドがありますか?生きていればtrue、そうでなければfalse false end?Rubyでは、 '?'を使用しています。 - dbまたはモデルメソッド?
1
A
答えて
6
Railsは、モデル内のフィールドごとに?
で終わるメソッドを自動的に生成します。 いくつかの例:この動作はActiveRecordの中のすべてのboolean型のフィールドに自動的に行われ
class Animal
def young?
created_at > 1.day.ago
end
end
1
:
Animal #=> Animal(id: integer, alive: boolean, name: string)
a = Animal.new
a.alive #=> nil
a.alive? #=> false
a.alive = true
a.alive? #=> true
a.name #=> nil
a.name? #=> false
a.name = "Giraffe"
a.name? #=> true
はまた、あなたが簡単に独自の?
メソッドを定義することができることに注意してください。
余計なことがありませんが、私はis_
の接頭辞を持つブールフィールドに名前を付けたいと思います。 is_alive
、is_alive?
です。
関連する問題
- 1. IsolationLevel.Snapshotを使用していますが、DBはまだロックしています
- 2. モデルメソッドでクエリしますか?
- 3. スパークカサンドラコネクタは、私は、バージョン#使用していますDB
- 4. apt-get installを使ってrubyをインストールするruby 2.0.0は成功しましたが、正しいrubyのバージョンを使用していません
- 5. Rubyでは、anyメソッドを使用して値を返します
- 6. 私はRuby on Railsをを使用しています
- 7. Ruby on Railsは単独でDBサーバーをサポートしていますか?
- 8. Googleはアプリケーション開発にRubyを使用していますか?
- 9. rubyはメモリ管理にスタックを使用していますか?
- 10. AtomまたはコマンドシェルでRubyスクリプトを実行しています
- 11. は、私はバークレーDBを使用して起動するtrayingています2010
- 12. Mongoose - クエリexec()はモデルメソッドで決して解決しません
- 13. CakePHP delete()モデルメソッドが失敗しました
- 14. LDAP(またはLDAP用のRubyクライアントライブラリ)はバッチコールをサポートしていますか?
- 15. ruby(レール用)でsort_byを使用していますか?
- 16. Rubyでキーワード引数を使用して(:send)を使用していますか?
- 17. Log4j2は%dまたは%sを使用して{}を使用しています
- 18. web.py DB INSERTの移植性(または非使用)がSQLLiteral( "NOW()")を使用していますか?
- 19. Dbを使用しないDbConnectionで、メモリ内のDataSet(または同様のもの)をソースとして使用
- 20. ffmpeg、ffprobe、またはrvideoを使用してRubyスクリプトでビデオメタデータを取得する
- 21. Stream APIまたはCompletableFutureを使用した並列dbクエリ?
- 22. レールにモデルメソッドで使用されていないキャッシュが含まれています
- 23. Neo4jグラフDBでMiniprofilerを使用しています
- 24. Ruby on Railsでは「ベンダー」または「ベンダー」という用語は何を意味していますか?
- 25. rubyタグをプレースホルダで使用する方法:または値:
- 26. Ruby on RailsでSilverlightを使用していますか?
- 27. Ruby onレールアプリで.pluckと.averageを使用していますか?
- 28. Rubyでパッケージを使用していますか?
- 29. JRubyではなくRubyをJMSキューに使用していますか?
- 30. マーケットプレイスはRuby on Railsで多対多関連を使用していますか?
コードを共有する際には、個人的な基準がありますが、すべてのユーザーが使用し維持するのは悪夢です。 –
RubyとRails自体から直接借用しました。 'is_a?'、 'is_missing?'、 'is_eos?'など –
はい、ルビーのメソッドネーミングと似ています。彼らはまた、同じスタンダードとフォーマットに従います。私はまだそれを信じています。コードを共有する際の個人的な基準は、すべての人が使い、維持するための悪夢です。熟考してください:)もしあなたがルビーコアに問題を起こすことができれば。 –