3

私は最初の Rails プロジェクトに取り組んでおり、Rails を使用して小さなサイトを構築しました。そして今、Rails 入門チュートリアルに従ってブログを構築しようとしています。

ブログの投稿を検証しようとすると、 http://guides.rubyonrails.org/getting_started.htmlの 6.5 に行き詰まり、次のエラーが表示されますUnknown validator: 'PresencesValidator'

これが私の投稿モデルです

class Post < ActiveRecord::Base
    validates :name, :presence => { :message => "Name cannot be blank" }
    validates :title, :presence => { :message => "Title cannot be blank" }
    validates :content, :presences => { :message => "Content cannot be blank" }
end

私も :presence => true を設定しようとしましたが、同じエラーです。

このエラーが発生する理由と修正方法を教えてください。

4

1 に答える 1

16

これはタイプミスであるため:

validates :content, :presences => { :message => "Content cannot be blank" }

presences書くつもりだったときに書いたpresence

また、これらに指定したメッセージはデフォルトであるため、実際に指定する必要はありません。

最後に、次の 3 つのことの存在を検証したい場合は、次のように 1 行で実行できます。

validates_presence_of :name, :title, :content

これにより、記述しようとしていたコードとまったく同じ動作が実現されます。2 つの検証構文があります。使用している方は、各属性に対して多くの検証を行う場合に適しています。個人的には、同じ検証を実行したい多くの異なる属性がある場合には、もう一方の種類の方が優れていると思います。基本的に、タイピングが少なくて済む方。

検証とコールバックのガイドを参考にしてください。乾杯。

于 2012-05-02T04:04:26.733 に答える