Web ページのフッターにあるメーリング リストにサインアップするためのフォームを作成したいと考えています。私が行ったのは、この小さなフォームをアプリケーション レイアウトのフッターにレンダリングするパーシャルを作成することでした。
パーシャルのコードは次のとおりです。
<%= form_for(@mailing_list) do |f| %>
<% if @mailing_list.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@mailing_list.errors.count, "error") %> prohibited this mailing_list from being saved:</h2>
<ul>
<% @mailing_list.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :first_name %><br />
<%= f.text_field :first_name %>
</div>
<div class="field">
<%= f.label :last_name %><br />
<%= f.text_field :last_name %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
私はまだレールを学んでいるので、足場から生成されたコードです。私が集めたものから、 @mailing_list = MailingList.new で @mailing_list 変数をインスタンス化する必要がありますが、ここでの問題は、必ずしもそのページにアクセスしているわけではないため、メーリング リスト コントローラーの NEW アクションが呼び出されないことです。このフォームは各ページのフッターにあります。
このフォームを作成する適切な方法は何でしょうか? すべてのコントローラーで MailingList.new を呼び出さずにこれを行う方法はありますか?
ありがとう!