Rails表示另一个模型

我有一个页面/联系人的表单,并希望将数据发送到另一个名为ContactForm而不是Pages模型的模型,所以我想这是在基本约定之外..它看起来像这样:

 :post do |f| %> ... ...  class PagesController < ApplicationController def contact @contact_form = ContactForm.new(contact_form_params) end end 

我创造了这条路线

  post 'pages/contact' => 'pages#contact' 

这一切似乎工作正常,但没有记录数据。 在本地服务器,我可以看到正在处理POST,但没有做任何SQL事务..为什么??

 Started POST "/pages/contact" for ::1 at 2016-06-22 15:58:47 -0300 Processing by PagesController#contact as HTML Processing by PagesController#contact as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"WIb3jXmkxP0mxRPSPU0Yj050fFwCQOlm9FatCFiGuSrEaoRNXNtmn/w0ZOMtsZsRUwjq4NQweV+d56T5nFxL5Q==", "contact_form"=>{"name"=>"Diego", "phone"=>"", "email"=>"", "subject"=>"", "message"=>"Hoal"}, "commit"=>"Create Contact form"} 

参数:{“utf8”=>“✓”,“authenticity_token”=>“WIb3jXmkxP0mxRPSPU0Yj050fFwCQOlm9FatCFiGuSrEaoRNXNtmn / w0ZOMtsZsRUwjq4NQweV + d56T5nFxL5Q ==”,“contact_form”=> {“name”=>“Diego”,“phone”=>“”, “email”=>“”,“subject”=>“”,“message”=>“Hoal”},“commit”=>“创建联系表单”}在layouts / application中呈现pages / contact.html.erb( 3.0毫秒)

非常感谢!

在本地服务器中,我可以看到正在处理POST但没有执行任何SQL事务。为什么?

只要没有请求任何事务,就不会执行SQL 。 您的contact_form操作所做的是为变量分配参数,但不要求validation此变量并将其保存到数据库中。 所以它只是传递给视图……

你感兴趣的是:

 @contact_form = ContactForm.new(contact_form_params) if @contact_form.save # render success else # render errors end