我知道这是一个新手问题,只是不确定我错过了什么,并决定在我通常通过谷歌搜索后发布。我正在尝试从应用程序页脚中的表单(对于时事通讯)将内容发布到数据库,因此在整个应用程序中重复视图。现在,当我提交表单时,会在数据库中创建一个新对象,但所有字段都是“NULL”。看来我需要将@newsletter变量放在某个地方,我只是不确定在哪里。
部分我在视图中渲染
<%= form_tag({:controller => "newsletters", :action => "create"}, :method => "post", :id => "footer_email_form") do %>
<%= text_field_tag :first_name, '', id: "footer_email_firstname" %>
<%= text_field_tag :last_name, '', id: 'footer_email_lastname' %>
<%= text_field_tag :email, '', id: 'footer_email_address' %>
<%= submit_tag "Submit", :name => nil, id: 'footer_email_submit', class: "btn btn-primary" %>
<% end %>
控制器(创建动作)
class NewslettersController < ApplicationController
def create
@newsletter = Newsletter.new(params[:newsletter])
if @newsletter.save
format.html { redirect_to 'pages#home', notice: 'Thank You for signing up for our newsletter' }
format.json { render json: @newsletter, status: :created, location: @newsletter }
else
format.json { render json: @newsletter.errors, status: :unprocessable_entity }
end
end
end
路线
resources :newsletters, :only => [:create, :destroy]