我想创建一个表单,用于在我的网页页脚中注册邮件列表。 我所做的是创建一个部分,在应用程序布局的页脚中呈现这个小表单。Rails 3.2创建每页页脚中使用的表单
下面是部分代码:
<%= 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?
谢谢!
您可能会感兴趣[细胞(HTTP://cells.rubyforge .org等/)。否则,使用'before_filter'来实例化你的'@ mailing_list',但是当你处理表单的时候会变得非常棘手(你需要重定向到某处......但是当你有错误时会发生什么?) – 2013-03-17 21:37:00
谢谢m_x让我意识到细胞之类的东西:) – Zippie 2013-03-17 21:50:29
感谢让我意识到细胞。至于重定向和错误,我打算在这个特定的表单中使用ajax。 – hebime 2013-03-17 22:30:20