私は簡単な安らかなレールAPIをjsonレスポンスを供給するように設定しました。モデルには、次に示すバリデーションがあるline.rbがあります。ラックテスト中にアクティブモデル送信の検証エラーが2回発生しました。
あなたは私は私はしかし、それは検証エラーを引き起こしたし、私の主張を満たしている必要がある行にタイトルを供給していないのですので、見ることができるように、私はスイートit "with invalid attributes" do
post"#{url}/#{account.name}.json", :api_key => application.key, :line => {:department => "Survey"}
--some assertions --
body = JSON.parse(last_response.body)
body.should eql({"error"=>{"message"=>"[\"Title can't be blank\", \"Title is too short (minimum is 3 characters)\",]"}})
end
を以下している私のスペックで
validates :title, :presence => true, :length => {:minimum => 3, :maximum => 40},
:appropriate_title => {:message => "cannot have . and /"}
validates :department, :presence => true
validates :owner, :presence => true
validates :account, :presence => true
validate :unique_inputs
validates :title, :uniqueness => {
:scope => :account,
:message => 'is already taken for this account',
:case_sensitive => false }
同じ検証エラーが2回発生します。
{"error"=>{
"message"=>"[\"Title can't be blank\", \"Title is too short (minimum is 3 characters)\", \"Title can't be blank\", \"Title is too short (minimum is 3 characters)\"]"
}}
これは実際には開発モードで私はこの検証エラーを2回取得していない奇妙です。あなたは私が私のコントローラで何か間違ったことをやっている疑う場合は、次のように私は私のコントローラ
@line = @current_user.lines.new(params[:line])
if @line.save
respond_with(@line)
else
render :json => {:error => {:message => @line.errors.full_messages}}
end
に持っているもので、それはラックテストとバグですか、私は何か間違ったことをやっている場合、私は把握することはできません。
私はdevモード(私は実際にはprodモードを試していない - まだ)以外は、同じ問題が発生しています。 'validates:date、:presence => true、:uniqueness => {scope =>:artist_id}' 'validates:artist_id、:presence => true' 私のモデルには日付と日付しかありません。説明、アーティストとの関係(belongs_to)。一意性検証はうまく動作しますが、存在確認によって日付フィールドに空白の値を渡すと二重の検証エラーが発生します。 この問題を解決しましたか?私はレール3.0.4でbtwです。 – Spiralis