を割り当てていない:私はRSpecのと私のアプリケーションの機能をテストしていRailsの「assign_attributesは、」私は、次の構造を持つ2つのモデル持っているネストされたモデル
class Wallet < ActiveRecord::Base
include ActiveModel::Validations
has_one :credit_card
accepts_nested_attributes_for :credit_card
validates :credit_card, :presence => true
validates_associated :credit_card
...
end
class CreditCard < ActiveRecord::Base
include ActiveModel::Validations
belongs_to :wallet
validates :card_number, :presence => true
validates :expiration_date, :presence => true
...
end
を、私は奇妙な何かに気づきました。入れ子になったモデル(nil card_numberなど)の検証基準を満たさない属性を持つハッシュを作成してupdate_attributes
呼び出しを実行しようとすると、無効なクレジットカードでウォレットオブジェクトに返されるものネストされたモデル、および適切なエラーが含まれます。それが正しい、期待される行動です。
私は、なぜそれがあるか、そしてどのようにすることができます。そして、私は完全にゼロネストされたオブジェクトに無効なウォレットオブジェクトを返します、update_attributesがやるべきことすべてである(ただし、同じハッシュを取り、assign_attributes
を実行し、save
場合私は、ネストされた属性値のすべてを更新し、保存せずにエラーをチェック
そのリンクは反対であると思われます(等号はセキュリティチェックをスキップする機能です)。そして、なぜそれが私が見ている行動につながるのか分からない。 – Bryce