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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

解決済

2回答

2939閲覧

Railsでrenderが動かない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2020/05/11 11:34

編集2020/05/13 01:15

前提・実現したいこと

Ruby on railsで会員登録フォームを作りました。そこでsubmitボタンを押した際に会員登録に成功した場合はTOPページにリダイレクト、失敗したら再度登録フォームにrenderするという機能を実装中に以下の問題が発生しました。
実現したことは上記の通り「submitボタンを押した際に会員登録に成功した場合はTOPページにリダイレクト、失敗したら再度登録フォームにrenderするという機能を実装すること」です。

発生している問題

renderが機能せず、submitボタンを押すとTOPページにも登録フォームにも遷移せず登録フォームのform_forに設定したcreateアクションのビューに遷移してしまいます。

該当のソースコード

app/controllers/home_controller.rb

def create @user = User.new(user_params) if @user.save redirect_to("/") else render :new end end

app/views/new.html.erb

<% @user = User.new unless @user %> <%= form_for @user,:url => {controller: "home", action: "create" } do |f| %> <p>名前</p> <%= f.text_field :name %> <p>user_id</p> <%= f.text_field :user_id %> <p>メールアドレス</p> <p>*実在しないメールアドレスを記入した場合使える機能に制限が設けられる場合があります。</p> <%= f.email_field :email %> サイト作成者のメルマガに登録<%= f.radio_button :mailmagazin, "登録する", checked: true %>する<%= f.radio_button :mailmagazin, "登録しない" %>しない <p>パスワード</p> <%= f.text_field :password %> <br> <%= f.submit "新規登録!" %> <% end %>

routes.rb

Rails.application.routes.draw do get '/' => 'home#top' get 'sinki' => 'home#new' post 'kanryou' => 'home#create' get 'login' => 'home#login' get 'you' => 'home#you' post 'seikou' => 'home#seikou' get 'post' => 'post#top' post 'arigatou' => 'post#arigatou' get 'index' => 'video#index' get 'ionamata' => 'video#toukou' post 'yosi!' => 'video#create' get '/:id' => 'video#show' resources :show do resource :hosi end resources :show do member do resources :komento end end get 'kumentu' => 'video#kumentu' end

試したこと

下のやり方全てでrenderされませんでした。

render :new
render action: :new
render("new")
render("/sinki")

補足情報

Windows 10 home
Ruby on rails 5.2.4
ruby 2.6.6
PostgreSQL 12.2
テキストエディタ Atom

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

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

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

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

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

maisumakun

2020/05/13 00:58

ルーティングはどのように設定していますか?
guest

回答2

0

render action: :new

投稿2020/05/11 11:56

winterboum

総合スコア23401

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

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

退会済みユーザー

退会済みユーザー

2020/05/11 23:08

動きませんでした… さらに render :new render action: :new render("new") render("/sinki") これら全てでrenderされませんでした。
winterboum

2020/05/11 23:13

logではなんと言われていますか?
退会済みユーザー

退会済みユーザー

2020/05/13 00:53

返信が遅くなってすみません。 ↓のようになりました。 Started GET "/sinki" for ::1 at 2020-05-13 09:52:21 +0900 Processing by HomeController#new as HTML Rendering home/new.html.erb within layouts/application Rendered home/new.html.erb within layouts/application (63.1ms) Completed 200 OK in 660ms (Views: 642.9ms | ActiveRecord: 10.5ms) Started POST "/kanryou" for ::1 at 2020-05-13 09:52:23 +0900 Processing by HomeController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"NeMfCkvSnuTU+GS0YqIy1tWleL6wHZ7Vv2AqoimmmH0+SLCRVIz295aB/KGtqkrbDAXehwpjQZV4kdPPaoYN/Q==", "user"=>{"name"=>"", "user_id"=>"", "email"=>"", "mailmagazin"=>"登録する", "password"=>"[FILTERED]"}, "commit"=>"新規登録!"} Rendering home/create.html.erb within layouts/application Rendered home/create.html.erb within layouts/application (0.8ms) Completed 200 OK in 715ms (Views: 704.1ms | ActiveRecord: 0.0ms)
退会済みユーザー

退会済みユーザー

2020/05/13 01:19

解決しました。 親身に解決を手伝って頂き感謝しております。
guest

0

ベストアンサー

お騒がせしました。
home_controller.rb
のrenderより上に「private」と書かれていたことが原因でした。

投稿2020/05/13 01:18

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問