基本的に、私のビューではレールコンソールの動作が動作しないようです - datetime型の列 "start_date"を持つワークショップモデルがあります。
私はレールコンソールを入力したとき、私は
Railsビューのdatetimeから1日を取得できません
Workshop.find(<id>).start_date.day
戻り予想通り、特定の日(例えば「21」日時「金の場合を、2017年4月21日午前17時○○分00秒UTCをこの種類のオブジェクトを作成しています+00:00 ')。
私の見解では、私は 'day'メソッドを使用することができません。私は、ワークショップのための私のショービューでスリム宝石と、このコードを使用しています:このエラーで
p= workshop.start_date.day
結果:nilのための未定義のメソッド `日」:NilClass
しかし、コード
p= workshop.start_date
日付を正しく表示し、コードを表示します。
p= workshop.start_date.class
オブジェクトのクラスが次のように表示されます。ActiveSuppo rt :: TimeWithZone
何が起こっているのですか?Railsはクラスがゼロであると言っているのはなぜですか?
私はstart_date属性 'nil'を持つレコードがあると思います。それがエラーの理由です。ビューに条件を入れて 'workshop.start_date.dayならworkshop.start_date'をチェックしてください。これはあなたがそのようなエラーをキャッチするのに役立ちます。 –
私は遅れました - ありがとう、それはまさにそれでした。私は現場でフィールドを開発していましたが、まだこのフィールドの検証をオンにしていないので、このフィールドが1つのオブジェクトが無しに設定されています。 – bochen421
心配はいりません。これはコーディング中に発生します。幸せなコーディングのための乾杯。 –