私はアプリ(Rails 5)で作業していましたが、ユーザーが選択した属性(サーバー)が必要な範囲にあるかどうかを確認したかったのです。モデルのレンダリング条件付き検証
class Player < ApplicationRecord
validates :nick, presence: true, length: { maximum: 20 }
validates :description, length: { maximum: 275 }
validates :server, presence: true, if: server_exists?
def server_exists?
server == "NA"
end
end
私はlocalhosにアクセスしよう:3000私は次のエラーを取得する:
undefined method `server_exists?' for Player (call 'Player.connection' to establish a connection):Class
誰もがそれを修正する方法を知っていますか?
ありがとうございます!
理由*この問題が発生した*上の精緻化を考えてみましょう特に、それは自己です。 (ここには存在しないClassModelとして直接呼び出されています) –
ありがとう!私は ":"が使われていないときにこのエラーがなぜ起こるかについて調べます。 – Matheus
あなたも大歓迎です!['ActiveModel :: Validations#validates'](https://github.com/rails/rails/blob/cdb9d7f481a6b299cd53a0f647397da60d806a21/activemodel/lib/active_model/validations)を見てください。 /validates.rb#L104)を使用して、どのように動作するかを確認します。 –