0

Pricing と Pricing Details の 2 つのモデルがあります。価格には has_many の価格設定の詳細があります。form_for を使用するフォームがあるので、価格設定オブジェクトと詳細をすべて同じフォームで作成し、すべてを 1 回の保存呼び出しで保存できます。

すべてのコードは期待どおりに機能しますが、問題は、pricing_details モデルの検証済みフィールドを省略した場合の検証メッセージが次のようになることです。

「価格の詳細は年間価格を空白にすることはできません」

私の検証は次のとおりです。

def validate_cost
  field_name = PriceType.find(self.price_type_id).name
  if self.cost.blank?
    self.errors.add :cost, field_name + " cannot be blank"
  end
end

私が欲しいのは単純です:「年間価格を空白にすることはできません」

子モデルとフィールド名を抑制するために使用できるロケールへのハックはありますか? 次のように、代わりにベースに追加しようとしました:

self.errors.add :base, field_name + " cannot be blank"

しかし、「価格の詳細ベースの年間価格を空白にすることはできません」というメッセージが表示されます。

4

1 に答える 1

0

ロケールを使用して、ネストされたフィールドの名前を変更できます。この回答を参照してください https://stackoverflow.com/a/11129637/18038

于 2013-03-12T21:57:10.783 に答える