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

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

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

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

Ruby

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

Ruby on Rails

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

Q&A

0回答

1032閲覧

ruby on rails 投稿機能の確認画面の作成についてご教示いただきたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

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

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/12/23 00:47

ruby on rails初心者で、投稿機能の確認画面を作成しようとしております。

「index.html」の「投稿内容を確認する」ボタンをクリックして、
確認画面として用意している、「confirm」のView画面に遷移させるという機能を作りたいです。
ルーティングで、「hmhrpractices_confirm POST /hmhrpractices/confirm(.:format) hmhrpractices#confirm」としているにも関わらず、アドレスバーの末尾に「/hmhrpractices/confirm」を入れて検索すると、ブラウザ上で「Hmhrpractices#show Find me in app/views/hmhrpractices/show.html.erb」と表示されてしまいます。
なぜ、指定しているものと異なるページが呼び出されてしまうのでしょうか。

(数日間、確認画面を作ることに難儀しており、コードがごちゃごちゃしてしまっているかと思います。。申し訳ございませんが、ご確認いただけますと幸いです。)


◆ルーティング
Prefix Verb URI Pattern Controller#Action
hmhrpractices_back GET /hmhrpractices/back(.:format) hmhrpractices#back
hmhrpractices_show GET /hmhrpractices/show(.:format) hmhrpractices#show
hmhrpractices_new GET /hmhrpractices/new(.:format) hmhrpractices#new
hmhrpractices_edit GET /hmhrpractices/edit(.:format) hmhrpractices#edit
root GET / practices#index
practices GET /practices(.:format) practices#index
POST /practices(.:format) practices#create
new_practice GET /practices/new(.:format) practices#new
edit_practice GET /practices/:id/edit(.:format) practices#edit
practice GET /practices/:id(.:format) practices#show
PATCH /practices/:id(.:format) practices#update
PUT /practices/:id(.:format) practices#update
DELETE /practices/:id(.:format) practices#destroy
hmhrpractices GET /hmhrpractices(.:format) hmhrpractices#index
POST /hmhrpractices(.:format) hmhrpractices#create
new_hmhrpractice GET /hmhrpractices/new(.:format) hmhrpractices#new
edit_hmhrpractice GET /hmhrpractices/:id/edit(.:format) hmhrpractices#edit
hmhrpractice GET /hmhrpractices/:id(.:format) hmhrpractices#show
PATCH /hmhrpractices/:id(.:format) hmhrpractices#update
PUT /hmhrpractices/:id(.:format) hmhrpractices#update
DELETE /hmhrpractices/:id(.:format) hmhrpractices#destroy
hmhrpractices_confirm POST /hmhrpractices/confirm(.:format) hmhrpractices#confirm
POST /hmhrpractices/back(.:format) hmhrpractices#back
rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show
rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format)


◆controller

class HmhrpracticesController < ApplicationController
PER = 4

def index
@hmhrpractices = Hmhrpractice.page(params[:page]).per(PER).order(id: "DESC")
@hmhrpractice = Hmhrpractice.new
end

def show
end

def edit
end

def create
@hmhrpractice = Hmhrpractice.new(hmhrpractice_params)
if @hmhrpractice.save
redirect_to hmhrpractices_confirm_path
else
render :new
end
end

def confirm
@hmhrpractices = Hmhrpractice.new(hmhrpractice_params)
if @hmhrpractices.save
redirect_to root_path,notice: 'Success!'
else
flash[:alert] = "SAVE ERROR!"
end
end

def back
@hmhrpractices = Hmhrpractice.new(hmhrpractice_params)
if params[:back]
render("hmhrpractices/confirm")
else
MessageMailer.received_email(@hmhrpractices).deliver_now
render :action => 'back'
end
end

private
def hmhrpractice_params
params.permit(:name, :title, :content)
end
end


◆index.html

<div class="header-wrapper"> <div class="header-left"> <h1>検索サイト</h1> </div> <div class="header-right"> <form class="search" id="makeImg"> <div class="search-wrapper"> <input type="text" id="inText" class="searchText" placeholder="キーワード検索"> <input type= submit value= 検索 class="searchBtn"> </div> </form> <div class="login"> <a href="#" class="login-btn">ログイン</a> </div> </div> </div> </div> </header> <main> <div class="main-wrapper"> <div class="main-content"> <div class="thread-title"> <h1>HM/HR</h1> </div> <div class="new-posts"> <h1>新着投稿<p class="post-button" id="open"><span>投稿をする</span></p></h1> <% @hmhrpractices.each do |hmhrpractice| %> <p><%= hmhrpractice.name %></p> <h2><%= hmhrpractice.title %></h2> <p><%= hmhrpractice.content %></p> <% end %> <%= paginate @hmhrpractices %> </div> </div> <div class="popular"> <h1>人気投稿</h1> </div> </div> </div> </main> <div id="mask" class="hidden"></div> <div id="modal" class="hidden"> <h2>投稿する</h2> <%= form_with model: @hmhrpractice,local: true do |f| %> <div> <label>名前</label> <%= f.text_field :name, class: "form-control" %> </div> <div> <label>タイトル</label> <%= f.text_field :title, class: "form-control" %> </div> <div> <label>内容</label> <%= f.text_area :content, class: "form-control" %> </div> <div> <%= f.submit "投稿内容を確認する", class: "btn btn-primary" %> </div> <% end %> <div id="close"> 閉じる </div> </div> <%= javascript_include_tag 'application' %>
</body> </html> _______________________________________________ ◆controller

class HmhrpracticesController < ApplicationController
PER = 4

def index
@hmhrpractices = Hmhrpractice.page(params[:page]).per(PER).order(id: "DESC")
@hmhrpractice = Hmhrpractice.new
end

def show
end

def edit
end

def create
@hmhrpractice = Hmhrpractice.new(hmhrpractice_params)
if @hmhrpractice.save
redirect_to hmhrpractices_confirm_path
else
render :new
end
end

def confirm
@hmhrpractices = Hmhrpractice.new(hmhrpractice_params)
if @hmhrpractices.save
redirect_to root_path,notice: 'Success!'
else
flash[:alert] = "SAVE ERROR!"
end
end

def back
@hmhrpractices = Hmhrpractice.new(hmhrpractice_params)
if params[:back]
render("hmhrpractices/confirm")
else
MessageMailer.received_email(@hmhrpractices).deliver_now
render :action => 'back'
end
end

private
def hmhrpractice_params
params.permit(:name, :title, :content)
end
end


◆confirm.html

<h1>予約フォーム</h1> <ol class="nav"> <li>1.入力</li> <li class="current">2.確認</li> <li>3.完了</li> </ol> <dl> <dt>名前</dt> <dd><%= @hmhrpractices.name %></dd> <dt>タイトル</dt> <dd><%= @hmhrpractices.title %></dd> <dt>投稿内容</dt> <dd><%= @hmhrpractices.content %></dd> </dl>

<%= form_with(model: [@practices, Hmhrpractice.new]) , method: :post, url: reserve_back_path do |form| %>
<%= form.hidden_field :name %>
<%= form.hidden_field :title %>
<%= form.hidden_field :content %>
<%= form.submit '入力画面に戻る' %>
<% end %>

<%= form_for @hmhrpractices, method: :post, url: reserve_complete_path do |form| %>
<%= form.hidden_field :name %>
<%= form.hidden_field :title %>
<%= form.hidden_field :content %>
<%= form.submit '送信する' %>
<% end %>

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

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

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

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

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

siruku6

2020/12/26 11:32

質問文内のソースコードの上下には、バックスラッシュ3つずつを設置して、インデントがわかるようにしましょう。 少なくともそれはしておかないと、ソースコードが読みにくすぎるため、回答がつかないのではないかと感じました。
退会済みユーザー

退会済みユーザー

2020/12/27 01:10

ご教示いただき、誠にありがとうございます。失礼いたしました。以後、注意致します。よろしくお願いいたします。
siruku6

2020/12/27 01:16

質問文は今からでも修正できるはずなので、修正した方が良いです。 というよりも、修正しないと回答がつかないと思われます...。
winterboum

2020/12/30 06:13

です 読みにくいんでパスです、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問