我被困住了。我想在我的应用程序的主页面上创建联系表单。因此,主页面上的表单如下所示:
应用/视图/ main_page.html.slim
SELECT *, `a`.`name` as `team1name`, `b`.`name` as `team2name` FROM fixtures [...]
如您所见:联系人,网址:联系路径
首先,我发现错误未定义变量联系人,之后我将联系人添加到 application_controller 。
现在我得到了: 未定义的方法`model_name'为零:NilClass
我的控制器:
= 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" }
曝光是gem
路由:
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
我哪里出错了?我想我的应用程序使用了错误的控制器或无法找到它(联系人)。我该如何解决?
UPD:也添加了新方法。
答案 0 :(得分:0)
您可以expose(:contact)
中的HomeController
或者您可以更改表单:
= simple_form_for(defined(:contact) ? contact : Contact.new) do |f|
不应该提供路径,因为rails可以使用多态路由助手来解决它。