1

私は持っているモデルを持っています

attr_accessible :name, :activity

validates :name, uniqueness: { scope: :activity }

それは機能し、重複したエントリの作成を許可しません。ただし、simple_formでは、:nameフィールドにエラーのみが表示されます。この「名前」と「アクティビティ」の組み合わせはすでに使用されているというエラーが両方のフィールドに表示されるようにしたいと思います。

カスタム検証メソッドを作成する必要があると思っていますが、これまで見落としていたより洗練されたソリューションがあることを望んでいます。

これらの両方のフィールドでエラーを表示する方法はありますか?

4

2 に答える 2

1

:activityに別の検証を追加して、重複としてマークされるようにすることもできます。

validates :activity, uniqueness: { scope: :name }

これが最も洗練されたソリューションかどうかはわかりませんが、カスタム検証方法を省くことができます。

于 2012-12-28T05:33:57.607 に答える
0

私はやった

validates :name, uniqueness: { scope: :activity, message: 'This name and activity combination has already been taken.' }

両方を検証して両方のフィールドにメッセージを入れるかどうかはまだ決めていませんが、:activityフィールドの反対は同じです。

于 2013-01-08T14:19:49.123 に答える