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