Rails表示另一个模型

时间:2016-06-22 19:03:37

标签: ruby-on-rails forms

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

<%= form_for @contact_form, url: pages_contact_path, :method => :post do |f| %>
...
...
<% end %>

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”=&gt;“✓”,“authenticity_token”=&gt;“WIb3jXmkxP0mxRPSPU0Yj050fFwCQOlm9FatCFiGuSrEaoRNXNtmn / w0ZOMtsZsRUwjq4NQweV + d56T5nFxL5Q ==”,“contact_form”=&gt; {“name”=&gt;“Diego”,“ phone“=&gt;”“,”email“=&gt;”“,”subject“=&gt;”“,”message“=&gt;”Hoal“},”commit“=&gt;”创建联系表单“}   在布局/应用程序(3.0ms)中呈现页面/ contact.html.erb

非常感谢!

1 个答案:

答案 0 :(得分:2)

  

在本地服务器中我可以看到正在处理POST但没有这样做   任何SQL Transaction ..为什么?

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

您感兴趣的是:

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