Rubyの検証に苦労しています:私のRailsアプリケーションでは確認=>真です。次のコードを考えてみましょう:レール・サーバーの原因から手動が何かを確認します:確認=> trueとattr_accessorの混乱
1.9.3-p0 :002 > l2 = Thing.create! :pin => 1234567, :pin_confirmation => 1111111
ActiveRecord::RecordInvalid: Validation failed: Pin doesn't match confirmation
....
1.9.3-p0 :003 > l2 = Thing.create! :pin => 1234567, :pin_confirmation => 1234567
=> #<Thing id: 2, pin: 1234567, created_at: "2012-01-30 22:03:29", updated_at: "2012-01-30 22:03:29">
が、RSpecの通過の両方をテストして:上記のコードはあるので
# == Schema Information
#
# Table name: things
#
# id :integer not null, primary key
# pin :integer(8)
# created_at :datetime
# updated_at :datetime
#
class Things < ActiveRecord::Base
#attr_accessor :pin
attr_accessible :pin, :pin_confirmation
validates :pin,
:confirmation => true,
:length => { :within => 7..15 },
:numericality => { :only_integer => true }
エンド
を、私の検証は、Railsのコンソールから正常に動作します妥当性検査が失敗すると、彼らは彼らがうまくいったときに一致しないと言っています。 :pinのattr_accessorのコメントを外すと、バリデーションは成功しますが、:ピンはデータベースに書き込まれません。
私は、明らかに重要なことを忘れています。ちょうどレンガの壁に流れ込んでいます。
文字列? –
私はあなたが賞を勝ち取ったと思う...コンソールで文字列としてパラメータを実行すると(:pin => "1234567")、同じ検証エラーが発生しました...その次は苦労する必要があります。 – Jeff