我目前正在尝试构建一个简单的表单,该表单接收电子邮件地址并将其作为登录页面的一部分放入数据库中。表单位于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
我不确定出了什么问题但是当我在字段中输入有效的电子邮件地址时,这是我收到的错误。我用谷歌搜索无济于事。非常感谢您的帮助。
答案 0 :(得分:3)
它告诉你缺少一个模板。
通常情况下,默认情况下(如果您不致电render()
或redirect_to()
),Rails会根据您的情况呈现与您的操作相关联的视图:create.html.erb
。
因此,如果成功创建用户,则应该重定向到更有意义的内容。
像:
if @signup.save
redirect_to :root
else
#...
end
顺便提一下,我假设你先配置了根路径,如下所示:
root :to => "something"
您可以将用户重定向到您的应用程序有意义的位置。