私は立ち往生しています。私は自分のアプリケーションのメインページに連絡フォームを作成したいと思います。 連絡先、URL:接触経路簡単な書式を変更する方法
フォームを見たよう
アプリ/ビュー/ main_page.html.slim
= simple_form_for(contact, url: contact_path) do |f|
= f.input :name, label_html: { class: "modal__form-control" }
= f.input :email, label_html: { class: "modal__form-control" }
= f.input :phone, label_html: { class: "modal__form-control" }
.modal__form-error
= f.input :message, label_html: { class: "modal__form-control" }
:だから、メインページ上のフォームは次のようになりますまず、私はエラーを持っています。未定義の変数の連絡先、それに続いて連絡先をapplication_controllerに追加しました。
今私が持っている:nilのための 未定義のメソッド `MODEL_NAME」:NilClass
を私のコントローラ:
resource :contact, only: %i(new create)
:
class ContactsController < ApplicationController
expose(:contact, attributes: :contact)
def create
ContactMailer.contact(contact).deliver_now if contact.save
respond_with(contact, location: investors_path)
end
private
def contact_params
params.require(:contact).permit(:email, :message, :name, :phone)
end
end
公開がgem
ルーティングです
どこが間違っているの?私のアプリケーションは間違ったコントローラを使用していたり、見つけられなかったりします(連絡先)。私はそれをどのように解決するべきですか?
UPD:新しいメソッドも追加されました。
'expose'とは何ですか?どうやって 'contact'変数が定義されていますか?そしてなぜ 'Contacts'に' new'アクションがないときに 'contract'の' new'ルートを定義していますか? –
@TomLordが公開するhttps://github.com/hashrocket/decent_exposure – mswiszcz
@TomLord更新を参照してください –