【发布时间】:2013-03-17 21:15:12
【问题描述】:
我想在我的网页页脚创建一个用于注册邮件列表的表单。 我所做的是创建一个在应用程序布局的页脚中呈现这个小表单的部分。
这里是部分代码:
<%= 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 %>
我仍在学习 rails,所以这是从脚手架生成的代码。根据我收集的信息,我需要使用 @mailing_list = MailingList.new 实例化 @mailing_list 变量,但这里的问题是邮件列表控制器中的 NEW 操作不会被调用,因为我不一定要访问该页面。此表单位于每个页面的页脚中。
创建此表单的正确方法是什么? 有没有办法在每个控制器中不调用 MailingList.new 来做到这一点?
谢谢!
【问题讨论】:
-
您可能对Cells 感兴趣。否则使用
before_filter在任何地方实例化你的@mailing_list,但是当你处理表单时它会变得非常棘手(你需要重定向到某个地方......但是当你有错误时会发生什么?) -
感谢 m_x 让我了解细胞之类的东西 :)
-
感谢您也让我了解细胞。至于重定向和错误,我打算在这种特殊形式中使用 ajax。
标签: ruby-on-rails ruby ruby-on-rails-3.2