私はほとんど静的なWebサイトをRailsで構築しています。各ページはページコントローラによって管理されます。私は各ページの一番下にコンタクトフォームを持っています。私はmail_formを使用しています。各フォームには新しいContactFormオブジェクトが必要です。私は連絡フォームを定義しました。私はページコントローラのビューのそれぞれでのContactFormオブジェクトの新しいインスタンスを作成できるようにしたいと思い他のコントローラのインスタンス変数 - Rails
class ContactFormsController < ApplicationController
def new
@contact_form = ContactForm.new
end
def create
begin
@contact_form = ContactForm.new(params[:contact_form])
@contact_form.request = request
if @contact_form.deliver
flash.now[:notice] = 'Thank you for your message!'
else
render :new
end
rescue ScriptError
flash[:error] = 'Sorry, this message appears to be spam and was not delivered.'
end
end
end
:ここ
ActiveRecord::Schema.define(version: 20170130205713) do
create_table "contact_forms", force: :cascade do |t|
t.string "name"
t.string "email"
t.string "message"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
がコントローラである:これはそれのスキーマです。
NoMethodError in PagesController#home
undefined method `type' for {:validate=>true}:Hash
に私の行動のすべてを移動せずにこれを行う方法があります:私はページコントローラのホームビューに
@contact_form = ContactForm.new
を定義しようとすると、例えば、私はこのエラーを取得しますContactFormコントローラ?
を追加し、エラーがPagesController' 'であるが、あなたは私たちだけ' ContactFormsController'を示しました... – trueinViso