こんにちは。
問い合わせフォームについてご質問させて頂ければと存じます。
https://www.imd-net.com/column/1731/
上記サイトを参考にして、過去に問い合わせフォームを作成しました。
最近になってアクセスしてみると、エラーが発生しておりました。
ActiveRecord::StatementInvalid (Could not find table 'contacts'): app/controllers/contacts_controller.rb:5:in `index'
エラーは上記となっており、テーブルが見つからないと書いてあるのですが、元々テーブルにはアクセスしないように構築しており、エラーの解消が出来ずにいます。
以下がmodelとcontrollerです。
model
1class Contact < ApplicationRecord 2 include ActiveModel::Model 3 4 attr_accessor :company, :name, :tel, :email, :address, :message 5 6 validates :company, {presence: true} 7 validates :name, {presence: true} 8 validates :tel, {presence: true} 9 validates :email, {presence: true} 10 validates :address, {presence: true} 11 validates :message, {presence: true} 12end 13
class ContactsController < ApplicationController add_breadcrumb 'トップページ', '/' def index @contact = Contact.new add_breadcrumb 'お問い合わせフォーム', '/contacts' render :action => 'index' end def confirm @contact = Contact.new(contact_params) add_breadcrumb 'お問い合わせフォーム', '/contacts' add_breadcrumb 'お問い合わせ確認', '/contacts/confirm' if @contact.valid? render :action => 'confirm' else render :action => 'index' end end def thanks @contact = Contact.new(contact_params) add_breadcrumb 'お問い合わせフォーム', '/contacts' add_breadcrumb 'お問い合わせ確認', '/contacts/confirm' add_breadcrumb 'お問い合わせ完了', '/contacts/thanks' ContactMailer.received_email(@contact).deliver render :action => 'thanks' end private def contact_params params.require(:contact).permit( :company, #会社名 :name, #代表者名 :tel, #電話番号 :address, #住所 :email, #メールアドレス :message #本文 ) end end
「元々テーブルにはアクセスしないように構築しており」と記載されている背景がよくわからないのですが、エラーを出しているcontacts_controllerの5行目でContact.newをしていますから、contactsのスキーマを取りに行きますよね。DBに直接アクセスするなど、contactsテーブルにアクセスできるかどうか、切り分けた方がいいのではないでしょうか。
あなたの回答
tips
プレビュー