質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

6531閲覧

バリデーションでエラーが出た後、前の情報を残すには

828kk88

総合スコア61

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/02/09 14:40

ちょっと説明がしづらくて申し訳ないのですが、、

現在掲示板のようなものを作っていて、名前、性別、タイトル、本文などを必須で入力するようにバリデーションを設定しました。

それで、例えば名前を入力し忘れて、性別、タイトル、本文だけを入力して投稿を押すと、「名前が入力されていません」とういうメッセージが出て入力をし直すわけです。

そのときに既に入力していた性別、タイトル、本文が消えてしまうのですが、これらを消えないようにするにはどうすればいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

参考情報

...
def create
@user = User.new(user_params)
if @user.save
# 保存の成功をここで扱う。
else
render 'new'
end
end
...

エラーがおこると、フォーム画面が表示されます。
@user = User.new(user_params) としているので、
フォーム画面には、前画面での入力値 (user_params に入っていた値) が表示されます。

投稿2017/02/09 15:12

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

828kk88

2017/02/10 13:44

もともと def create @posting = Posting.new(create_params) if @posting.save tweet_post redirect_to action: :index else render 'new' end end private def create_params params.require(:posting).permit(:title, :name, :sex,:age,:category,:prefecture,:text,:password) end と記述していたのですが、記入漏れががあるまま投稿を押すととぜんぶ消えて しまいます。なにがいけないのでしょうか?
828kk88

2017/02/10 13:51

HTMLの方でvalue: ''" と空のバリューを入れていたのが原因だったよ言うです ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問