Ruby on rails - 基本形式 - 未定义方法`[]'用于nil:NilClass

时间:2013-03-06 12:13:51

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

我的“订阅者”问题。它应该只添加一个电子邮件到db,症状有效/无效。它给了我这个错误 - 未定义的方法`[]'为nil:NilClass

    Extracted source (around line #2):

1: <div id="subscriber">
**2:    <%= form_for @subscriber do |f| %>**
3:      <%= f.label :email %>
4:      <%= f.text_field :email %>
5:      <%= f.hidden_field :active, :value => true %>

这是模特:

class Subscriber < ActiveRecord::Base 

  attr_accessor :email, :active

  validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

  def persisted?
    false
  end
end

这是我的观点:

<div id="subscriber">
    <%= form_for @subscriber do |f| %>
        <%= f.label :email %>
        <%= f.text_field :email %>
        <%= f.hidden_field :active, :value => true %>
        <%= f.submit t('.submit') %>
    <% end %>
</div>

这是控制器:

class SubscribersController < ApplicationController

  def create
    @subscriber = Subscriber.new(params[:subscriber])

    if @subscriber.valid?
      flash[:notice] = "Thx for subscription"
      @subscriber.save
      redirect_to root_url
    else
      render :action => 'new'
    end
  end

end

这是路线:     资源:订阅者

我是RoR的新手,所以如果您需要更多日志或信息,请告诉我。很多。

0 个答案:

没有答案