ページ付けは、カスタム検証のために、エラーがスローされます
-
26-09-2019 - |
質問
私はRailsの2.3.5で私のモデルの一つのためのカスタム検証を作成しようとするんだけど、私は私のテストスイートを実行し、次のエラー毎回が供給し続けます:
`method_missing_without_paginate': undefined local variable or method `validates_progression'
アプリ/モデル/ project.rb
class Project < ActiveRecord::Base
...
validates_progression
def validates_progression
true # stubtastic!
end
end
私はこの〜
の多くを作るように見えることはできません解決
あなたは、インスタンスのスコープとメソッドを定義していて、クラスの範囲内でそれを呼び出すようにしようとしているため、
これは動作しません。次の2つの選択肢があります:
タグのインスタンススコープを
class Project < ActiveRecord::Base
validate :validates_progression
def validates_progression
true # stub
end
end
タグのクラススコープを
class Project < ActiveRecord::Base
def self.validates_progression
true # stub
end
# Be sure to define this method before calling it
validates_progression
end
第二の代替は本当に理にかなっていないあなたは、他のフィルタをラップする場合を除きます。
class Project < ActiveRecord::Base
def self.validates_progression
validates_presence_of :progression
validates_length_of ...
end
# Be sure to define this method before calling it
validates_progression
end
それ以外の場合は、最初のソリューションで行くます。
他のヒント
ページ付け基準は赤ニシンです。手がかりは、「なし」です。宝石は、既存のmethod_missing
方法をエイリアスとmethod_missing_without_pagination
それを呼び出したページ付けます。だから、問題は、標準的な欠落しているメソッドのエラーです。
この方法は、(あなたは)クラスのスコープ内のインスタンスメソッドを呼び出すようにしようとしている正しい範囲に)いない欠けています。
あなたは、検証方法のシンボルでvalidate
を使用して、カスタム検証を追加することができます:
validate :validates_progression
def validates_progression
true
end
所属していません StackOverflow