2011-06-23 6 views
0

私はレール2.3.11で作業しています。 私はブログ(id、title、description、referenced_publications)を持つモデルを持っています refer_publicationsは必須フィールドではありません。レールのモデルメソッドからカラムへのアクセスを削除する

私のapp_Configでは、デフォルトではreferenced_publicationsをfalseにしています。

ブログを送信するためのVIEWSの設定で、有効/無効が設定されているかどうかをチェックする条件が含まれています。例えば

誰かが私のモデル側から/私のUIからどこかではないから

を行っている場合は、

私はreferred_publicationsが設定から有効になっている場合は、そのインスタンスを保存することができますやりたいです、しかし、もしユーザが属性refer_publicationsを使用してエラーを投げようとした場合、またはその参照されたpublicationsを使用していない場合にのみ、エラーなしで保存することができます。

しかし、MODEL側。

これを解決する提案を与えてください。..

答えて

1

を私はあなたがカスタム検証を探していると思います。

Blogモデルで属性の有無が条件付きで必要な場合は、Blogが保存されるたびに属性が必要かどうかを確認し、存在することを確認する必要があります。ように:

class Blog < ActiveRecord::Base 
    validate :referred_publications_present_if_required? 

    private 

    def referred_publications_present_if_required? 
     if AppConfig.require_referred_publications 
      errors.add(:referred_publications, "must be present") 
     end 
    end 
end 

詳細については、Rails Guides: Validationsを参照してください。両方の場所でAppConfigにチェックを入れるのではなく、上のメソッドと上のメソッドの両方が使用できるモデルのメソッドに属性が必要であるかどうかを確認するためにチェックをカプセル化することも賢明かもしれません。

希望すると便利です。

関連する問題