def new @hoge = Hoge.new(hoge_params) end def create @hoge = Hoge.new(hoge_params) if @hoge.save redirect_to hoge_path, notice: "作成しました" else render 'new' @hoge = Hoge.new(hoge_params) end end
= form_for @hoge do |f| タイトル = f.text_field :title, placeholder:'タイトル' 本文 = f.text_field :content, placeholder:'本文' = f.submit '作成'
このような記述をしrenderで再描写後にフォームに打ち込んだ文字がセットされている仕組みってどうなっているんでしょうか?
form_forで@hogeを使っているのはデータの送り先を表しているもの、
と考えていたので、@hogeがrender後に再び代入されただけで、フォームに文字がセットされる仕組みがどういう風になっているのかがわかりません。
また、
else @hoge = Hoge.new(hoge_params) render 'new'
このような記述もしてみたのですが動作してくれませんでした。
これは何故でしょうか?
renderはビューの再描写をするだけ、ということなので@hogeが再代入されるタイミングが前でも同じかなあ、と思ったのですが
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/13 05:30