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

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

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

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

Q&A

0回答

705閲覧

ActionMailerで入力確認場面に移行しない

morimi714

総合スコア24

Ruby on Rails 5

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

0グッド

0クリップ

投稿2019/05/11 03:27

生徒が先生に相談できるフォームを作り、送信されたら先生のメールアドレス宛に届くというシステムをActionMailerで作ろうとしています。

inquiryのnew actionである入力場面まではうまくいったのです。しかし、inquiry/confirmにurlが飛んだものの、画面がnewのままconfirmに移行していないので(エラー文がでない)どこに記述の誤りがあるか分かっていない状況です。

お力を貸していただければ光栄です。情報に不備がある場合は遠慮なくお申し付けください。

#お問い合わせフォーム resources :teachers do resources :inquiry end post 'inquiry/confirm' => 'inquiry#confirm' # 確認画面 post 'inquiry/thanks' => 'inquiry#thanks' # 送信完了画面

inquiry.rb

class Inquiry < ApplicationRecord include ActiveModel::Model attr_accessor :body belongs_to :teacher belongs_to :user end
class InquiryController < ApplicationController def new # 入力画面を表示 @inquiry = Inquiry.new render :action => 'new' end def confirm # 入力値のチェック @inquiry = Inquiry.new(inquiry_params) if @inquiry.valid? # OK。確認画面を表示 render :action => 'confirm' else # NG。入力画面を再表示 render :action => 'new' end end def thanks # メール送信 @inquiry = Inquiry.new(inquiry_params) InquiryMailer.send_email(@inquiry).deliver # 完了画面を表示 render :action => 'thanks' end private def inquiry_params params.require(:inquiry).permit(:body, :teacher_id, :user_id) end end

inquiry/new.html.erb

<%= form_for @inquiry, :url => inquiry_confirm_path do |f| %> <h1>お問い合わせ</h1> <%= f.text_area :body %> <%= f.submit '確認' %> <% end %>

inquiry/confirm.html.erb

<%= form_for @inquiry, :url => inquiry_thanks_path do |f| %> <h1>お問い合わせ内容<h1> <%= f.hidden_field :body %> <%= simple_format(@inquiry.body) %> <%= f.submit '送信' %> <%= link_to "戻る",new_teacher_inquiry_path(@teacher)%> <% end %>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問