1

入力テキストに値があるかどうかをチェックする User モデルに検証があります。

validate :picture_name
...
...
...

def picture_name
    errors[:picture].push "no_name" if namePicture.blank?
end

html テキスト フィールド:

<input type="text" name="namePicture" />

私の見解では、その @user.errors[:picture] にエラーが 1 つしか含まれておらず、エラー テキストが「no_name」であるかどうかを確認したい(no_name は、picture_name 検証によって追加されたエラーです)。

<% if @user.errors.count.eql? 1 && @user.errors['picture'] == "no_name" %>
   <h1> test works </h1>
<% else %>
   <h1> test doesn't works </h1>
<% end %>

しかし、errors['picture'] に「no_name」がエラーとして (1 つだけ) 含まれている場合でも、常に「テストが機能しない」と表示される理由がわかりません。

if ステートメントにエラーがありますか? または何 ?

ありがとうございました

4

2 に答える 2

0

シンボル (:picture) でエラーを設定することに関係していると思いますが、文字列 ('picture') + errors[:picture] のテストには、文字列ではなく配列が含まれています

于 2013-10-06T14:31:50.517 に答える