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

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

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

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

Q&A

解決済

1回答

521閲覧

投稿時の条件分岐の設定

take20998267

総合スコア3

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

0グッド

0クリップ

投稿2022/11/27 14:10

編集2022/11/27 14:16

前提

投稿機能の実装

実現したいこと

保存できた場合とできなかった場合の
移動さきを指定

発生している問題・エラーメッセージ

新規投稿時保存されないときでもroot_pathに移動してしまう 編集後、詳細ページにいかず、root_pathに行ってしまう

該当のソースコード

PrototypesController

1class PrototypesController < ApplicationController 2 before_action :set_prototype, only: [:show, :edit] 3 def index 4 @user = current_user.name 5 @prototypes = Prototype.all 6 end 7 8 def new 9 @prototype = Prototype.new 10 end 11 12 def create 13 Prototype.create(prototype_params) 14 if 15 redirect_to root_path 16 else 17 render "form" 18 end 19end 20 21 def show 22 23 end 24 25 def edit 26 27 end 28 29 def update 30 @prototype = Prototype.find(params[:id]) 31 if @prototype.update(prototype_params) 32 redirect_to prototypes_path(@prototype.id) 33 else 34 render "edit" 35 end 36 end 37 38 39 private 40 def prototype_params 41 params.require(:prototype).permit(:title, :concept, :image, :catch_copy).merge(user_id: current_user.id) 42 end 43 def set_prototype 44 @prototype = Prototype.find(params[:id]) 45 end 46 end

_form.html.erb

1<%= form_with model: @prototype, local: true do |f|%> 2 <div class="field"> 3 <%= f.label :title, "プロトタイプの名称" %><br /> 4 <%= f.text_field :title, id:"prototype_title" %> 5 </div> 6 7 <div class="field"> 8 <%= f.label :catch_copy, "キャッチコピー" %><br /> 9 <%= f.text_area :catch_copy, class: :form__text, id:"prototype_catch_copy" %> 10 </div> 11 12 <div class="field"> 13 <%= f.label :concept, "コンセプト" %><br /> 14 <%= f.text_area :concept, class: :form__text, id:"prototype_concept" %> 15 </div> 16 17 <div class="field"> 18 <%= f.label :image, "プロトタイプの画像" %><br /> 19 <%= f.file_field :image, id:"prototype_image" %> 20 </div> 21 22 <div class="actions"> 23 <%= f.submit "保存する", class: :form__btn %> 24 </div> 25<% end %>

prototype.rb

1class Prototype < ApplicationRecord 2 belongs_to :user 3 has_many :comments 4 has_one_attached :image 5 6 validates :title, presence: true 7 validates :catch_copy, presence: true 8 validates :concept, presence: true 9 validates :image, presence: true 10end
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ruby

1 if 保存できた場合() 2 redirect_to root_path 3 else 4 render "form" 5 end

投稿2022/11/27 14:13

unti

総合スコア72

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

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

take20998267

2022/11/27 14:25

回答ありがとうございます 修正後このエラーが出ました。 ご教授お願いします Template is missing
unti

2022/11/27 14:27

formのテンプレートを作成しましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.41%

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

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

質問する

関連した質問