时事通讯在主要布局中的注册表单

时间:2011-02-05 14:27:45

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


我创建了一个带时事通讯控制器的模型时事通讯:

class NewslettersController < ApplicationController


  def signup
    @signup=Newsletter.new(params[:newsletter])
    @signup.save
  end

end

我想把它叫做layouts / application.html.erb 我创建了一个部分时事通讯/ _signup:

 <%= form_for @newsletter, :html => {:multipart => true} do |f| -%>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
     <%= f.submit 'Go!' %>
<% end -%>

但是当我使用render:partial =&gt; “newsletters / signup”我为NilClass:Class获得了未定义的方法`model_name'。

什么错了? (Rails 3)

1 个答案:

答案 0 :(得分:1)

这里有很多困惑:

如果您在应用程序布局中添加了某些内容,则应该为所有页面呈现它。所以应该在任何地方创建变量 - &gt;那是application_controller的工作。

在您的application_controller.rb中,添加:

before_filter :mailing_list

def mailing_list
  @newsletter = Newsletter.new
end

并删除您的简报控制器中signup的定义。