私はこのpostに従っており、オブジェクトの作成前に検証メソッドを追加しようとしています。私は続けるundefined method 'video' for #<Video:0xbe430a0>
私はここでこの記事を読んでいるhttp://ruby-for-beginners.rubymonstas.org/ルビーの仕組みを知っているが、なぜこのエラーが出るのか理解できない。新しいオブジェクトを作成する検証で、 `未定義のメソッド` rubyを読み込みますか?
http://api.rubyonrails.org/v5.1/classes/ActiveModel/Validations/ClassMethods.html#method-i-validate
私はRubyのオブジェクトに新しい呼び出すと、私はundefined method
を取得しないために、ビデオ変数に実行する必要が何をすべきか、検証して、それを保存する場合は?
class Video < ApplicationRecord
validate :video_count_within_limit, on: :create
def video_count_within_limit
if video(:reload).count >= 9
errors.add(:base, "Exceeded video limit of 9 videos")
end
end
あなたが何しようとしていることは、あなたがフォローしているポストから同じ構造を複製した場合は、あなたのビデオのモデルも 'belongs_toのを持っている必要がありself' – Pavan
'と 'video'を交換してみてください:some_model' そして、特定のモデルのビデオの数が 'self.some_model.video(:reload).count'(ただし' self'部分は必要ありません)でチェックします。 あなたが今やっていることはあまり意味がありません。 – matija
私はそれを1つのモデルでやろうとしていたことを理解しています。ビデオモデルだけを使用する別の方法はありますか?ありがとうございましたpavan前に私は運がないとそれを試みました。 –