Страница-заставка: Коллекция электронной почты (Rails 3.2) - PullRequest
0 голосов
/ 26 января 2012

Я новичок в программировании и новичок в RoR.

Я пытаюсь создать простую форму для сбора электронной почты для заставки, но получаю исключение при попытке загрузить страницу в браузере. Ниже приведены четыре соответствующих файла:

emails_controller.rb

class EmailsController < ApplicationController
  def new
    render :layout => false
    @email = Email.new
  end

  def show
    email = Email.find(params[:id])
  end
end

email.rb

class Email < ActiveRecord::Base
  attr_accessible :email

  email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

  validates :email, :presence   => true,
                :format     => { :with => email_regex },
                :uniqueness => { :case_sensitive => false }
end

routes.rb

Splashtest::Application.routes.draw do
  get "emails/new"

  match 'splash', :to => 'emails#new'
end

new.html.erb

<h1>Get notified when we launch:</h1>

<%= form_for(@email) do |f| %>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

Вот ошибка, которую я получаю при загрузке http://localhost:3000/splash:

неопределенный метод `имя_модели 'для NilClass: Class

Пожалуйста, помогите мне понять, почему я получаю эту ошибку, когда пытаюсь просмотреть страницу. Моя цель - сохранить адрес электронной почты в моей базе данных. Я понимаю, что для этого требуется больше кода, но я бы хотел сначала обойти эту ошибку.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Мне пришлось поменять местами render: layout => false и @email = Email.new, чтобы заставить его работать.

0 голосов
/ 26 января 2012
def show
  @email = Email.find(params[:id])
end

Вы пропустили @.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...