これは初心者の質問であることはわかっていますが、何が欠けているのかわからないため、Google で通常の検索を行った後、投稿することにしました。アプリケーションのフッター (ニュースレター用) のフォームからコンテンツをデータベースに投稿しようとしているため、ビューはアプリケーション全体で繰り返されます。現在、フォームを送信すると、データベースに新しいオブジェクトが作成されますが、すべてのフィールドが「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]