1

我的“订阅者”有问题。它应该只向数据库添加一封电子邮件,症状为活动/非活动。它给了我这个错误 - 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 的新手,所以如果您需要更多日志或信息,请告诉我。多谢。

4

0 回答 0