前提・実現したいこと
RoRで3ヶ国語のウェブサイトを作ろうとしています。それぞれワンページですが、https://www.imd-net.com/column/1731/
で問合せフォームを作るつもりなので、viewの数としては3 x 3になります。
なお、後述のコードは一つ前に作ったサイトでは動作していましたが、そのサイトは1言語のみだったので、元ネタ通りInquiryControllerという名前を使っていました。
発生している問題・エラーメッセージ
NameError (uninitialized constant EnglishPagesController::EnglishPage): app/controllers/english_pages_controller.rb:4:in `index'
該当のソースコード (def indexのみ変更済み)
english_pages_controller.rb
class EnglishPagesController < ApplicationController def index # 入力画面を表示 @english_page = EnglishPage.new render :action => 'index' end def confirm # 入力値のチェック @inquiry = Inquiry.new(params[:inquiry]) if @inquiry.valid? # OK。確認画面を表示 render :action => 'confirm' else # NG。入力画面を再表示 render :action => 'index' end end def thanks # メール送信 @inquiry = English.new(params[:inquiry]) InquiryMailer.received_email(@inquiry).deliver # 完了画面を表示 render :action => 'thanks' end end
routes.rb
Rails.application.routes.draw do root 'english_pages#index' match '/en/index', to: 'english_pages#index', via: 'get' match '/ma/index', to: 'mandarin_pages#index', via: 'get' match '/ja/index', to: 'japanese_pages#index', via: 'get' post 'en/confirm' => 'english_pages#confirm' post 'en/thanks' => 'english_pages#thanks' post 'ma/confirm' => 'mandarin_pages#confirm' post 'ma/thanks' => 'mandarin_pages#thanks' post 'ja/confirm' => 'japanese_pages#confirm' post 'ja/thanks' => 'japanese_pages#thanks' end
試したこと
requireは効果がありませんでした。
そもそも3言語、ワンページ、問合せフォームの組み合わせでこのような構造にするのが適切かどうか、怪しいところとは思っています。それも含め、アドバイス、駄目出し等ありましたらお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/08 01:39