在rails中的静态页面上收集电子邮件

时间:2011-11-30 18:54:17

标签: ruby-on-rails ruby ruby-on-rails-3 forms routing

我的Rails 3.1网站上有一个静态页面。我有一个只有电子邮件属性的访客模型(电子邮件:字符串)。我想收集访问我网站的电子邮件。他们将在文本字段中键入他们的电子邮件,然后单击“提交”,然后重定向到感谢页面。

我可以用资源做这种事情,但我不需要那么多。只是提交并感谢你。

我该怎么做?请提供视图和控制器的代码。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用资源有什么问题?您的访客是一种资源,为什么不把它当成一个?

在您的路线中:

resource :visitors, :only => :create # POST to visitor_path to create a visitor
root_to ...

在VisitorController中

def create
  @visitor = Visitor.new(params[:visitor])
  if @visitor.save
    render "pages/comingsoon" # or redirect, or render leave empty to render views/visitors/create.html.erb
  else
    # ...
  end
end

现在您可以拥有包含内容

的文件views / pages / comingsoon.html.erb
<h1>Thank you</h1>
<p>Stored your email address <%= @visitor.email %></p>

为了完整起见,新访客的表格:

<%= form_for Visitor.new do |f| => ...