ようやく

ようやく悩んでいた箇所からの脱出ができました。

4日ぐらい悩んだ・・・。

 

今回悩んだ点は

新規投稿をした際(createアクション)

投稿ができたら、トップページに戻る。

投稿ができない場合は、その新規投稿画面の状態で入力したものは残っている状態になる。

という条件分岐を記載するところだったのですが、

createアクションの中で、

def create

  if ○○○.create(・・・_params)

    redirect_to root_path

  else

    render :new

  end

end

のような書き方をしていると、空の内容で登録ができないようにvalidatesをモデルに設定しているにもかかわらず、空っぽのまま保存をしようとすると、root_pathが発動してしまい、まるで保存できたような動きをしていた。

 

これはcreateを使用していたためらしく、条件分岐を行う際は、saveメソッドを使用する必要があるようだったので、上記を

 

 

def create

  @・・・ = ・・・・.new(・・・_params)

  if @・・・.save

    redirect_to root_path

  else

    render :new

  end

end

 

としてみたところ、ようやくうまくいった。

 

ということで、今回思ったのは、

1.createはvalidatesがかかっていて、空白がエラーが起きても次の行の処理が進む。

2.createアクションにて、条件分岐(保存できる場合、保存できない場合)する際には、newとsaveを利用する。

 

ということを胸に刻みながら、また明日も少しずつ進めればと思います。

 

最近、詰まるとどうしても抜け出せなくなってしまっている自分がいるので、悩みすぎずにいければと思います。

(他に仕事や引っ越しと考えることが多いので、少しでも考えることを少なくしてから挑みたい気持ちもあるな〜)