2017-08-03 14 views
1

に私は私のシンプルなフォルムは、エラーがあまりにも複雑なようだRailsの5簡単なフォームがエラー

<% errors = f.object.errors.messages.collect { |k,v| "#{k}: #{v}" if v.length > 0 }.join("\n")%> 
    <%= f.error_notification message: "Errors: #{errors}" %> 

経由で表示するように得ることができる唯一の方法は表示されません。

シナリオ:

Userテーブルとsocial_profileリンクのネストされた、多型テーブル(FacebookやTwitterなど)。

新しいアカウントを作成するときにユーザーが入れ子になっていないフォームを記入しなかった場合、プロファイルの入力/パラメータは空の文字列になり、正常に保存されます。

ただし、ユーザーがすべてのプロファイルリンクの入力フィールドを削除すると、social_profileテーブルへの関連付けは作成されません。したがって、後でユーザーが自分のアカウントを編集しようとすると、ネストされたsocial_profileフォームは表示されません。

ユーザーのモデルにを追加すると、このエラーは発生しませんが、ユーザーに何が発生したかは示されません。私が思いつくことができる最高ののは元のコードですが、より良い方法があるはずです。

答えて

1

@Bradヴェルトは、私は次のような答えを構築役立っているthis SO postに私をリンク:

<%= f.object.errors.full_messages.join(", ") if f.object.errors.any? %> 

(すなわち、「説明が空白にすることはできません」)、フォームからerror'edオブジェクトをグラブ「full_messages」を取得しますそれらをコンマで結合します。

関連する問題