注册/创建,应用程序/创建缺少模板

时间:2012-05-05 17:36:28

标签: ruby-on-rails ruby forms input

我目前正在尝试构建一个简单的表单,该表单接收电子邮件地址并将其作为登录页面的一部分放入数据库中。表单位于home.html.erb,由pages控制器控制。

我收到以下错误:

  

缺少模板注册/创建,应用程序/创建   {:locale => [:en] ,: formats => [:html],:handlers => [:erb,:builder,   :咖啡]}。搜索范围:*   “/用户/ ME / rails_projects / this_project /应用/视图”

这是我的代码:

home.html.erb有:

    <%= form_for(@signup) do |f| %>
        <div class="field">
            <%= f.text_field :email %>
        </div>

        <div class="actions">
            <%= f.submit "Sign up" %>
        </div>
    <% end %>

Pages控制器有:

class PagesController < ApplicationController

  def home
    @title = "Title of my site"
    @signup = Signup.new
  end

end

Signups控制器有:

class SignupController < ApplicationController

  def show
    @signup = Signup.new
  end

  def new
  end

  def create
    @signup = Signup.new(params[:signup])
    if @signup.save
    else
      render 'new'
    end
  end

end

Signup模型有:

class Signup < ActiveRecord::Base

  attr_accessible :email

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

  validates(:email, :presence => true,
                    :length => {:maximum => 40},
                    :format => {:with => email_regex})

end

我不确定出了什么问题但是当我在字段中输入有效的电子邮件地址时,这是我收到的错误。我用谷歌搜索无济于事。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

它告诉你缺少一个模板。

通常情况下,默认情况下(如果您不致电render()redirect_to()),Rails会根据您的情况呈现与您的操作相关联的视图:create.html.erb

因此,如果成功创建用户,则应该重定向到更有意义的内容。

像:

if @signup.save
   redirect_to :root
else
 #...
end

顺便提一下,我假设你先配置了根路径,如下所示:

root :to => "something"

您可以将用户重定向到您的应用程序有意义的位置。