15

このような足場を作りたい:

rails generate scaffold Job started_at:datetime completed_at:datetime price:decimal paid_at:datetime estimated_completion_at:datetime comment:text

Railsのタイムスタンプフィールドは日時の場合は「_at」、日付の場合は「_on」であるため、日時フィールドに「_at」を追加しました。しかし、これは実際には慣例ですか?「paid_at」の代わりに「paid」を使用し、「completed_at」の代わりに「completed」を使用しても大丈夫ですか?

私は本当にこれを最初から正しくしたいと思っています。私は何年もC#でプログラミングしてきましたが、RubyonRailsは初めてです。私はすべての慣習が好きで、これを適切な「レールの方法」で実行していることを確認したいと思います。

4

4 に答える 4

32

特定のレールの規則については知りません。また、レールには日時フィールドをキーオフするものがないため、実際には問題ではありません。私がいつも行ってきた規則は、接尾辞datetime列に。_atとdate列に_on。ある日、一度に言うのはいつもより自然に思えました。

于 2013-02-23T09:32:51.233 に答える
12

日付と時刻の列に名前を付ける方法は、公式に定められた規則ではなく、コードの動作に影響を与えません。ただし、「Railsの方法」を使用する場合は、Railsコミュニティで一般的に受け入れられている規則に従う必要があります。

  • 日付列に_on接尾辞を付けます。
  • 接尾辞を付けて日時列に名前を付け_atます。
  • 時間列(日付のない時刻を参照)に_time接尾辞を付けて名前を付けます。

これは、列に適切な名前を見つけ、他の開発者の混乱を防ぐのに役立ちます。これは従うべき良い慣習だと思います。列に別の名前を付けるやむを得ない理由がない限り、あなたもそうかもしれません。

于 2016-10-20T12:35:52.650 に答える
5

実際、Railsには、2つの特定のタイムスタンプ列の名前に関する規則created_atあります。とupdated_atは特別な動作をします。Active Recordの基本から — RubyonRailsガイド; 2.2スキーマの規則

ActiveRecordインスタンスに機能を追加するオプションの列名もいくつかあります。

  • created_at-レコードが最初に作成されたときの現在の日時に自動的に設定されます。
  • updated_at-レコードが更新されるたびに、自動的に現在の日時に設定されます。
  • ..。

そのページには、「_on」で終わる列名についての言及はありません。

于 2013-09-05T17:45:34.037 に答える
1

_atこれはおそらくRailsの規則ではありませんが、実際には日付/日時列の最後に追加するのが理にかなっています。paidだけと比較するpaid_atと、日付/日時オブジェクトを操作しているという概念が得られますがpaid、ブール値または支払いのステータスを説明する文字列にすることもできます。ですから、これはRailsだけに限定されているのではないと思います。

于 2013-02-23T08:48:01.453 に答える