首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails教程3第8章:注册-验证不起作用

Rails教程3第8章:注册-验证不起作用
EN

Stack Overflow用户
提问于 2012-02-29 05:29:11
回答 2查看 98关注 0票数 0

因此,当信息输入不正确时,我试图让一个错误框出现在我的注册页面上,但由于某种原因,它出现了一个模板缺失错误。

下面是完整的错误消息

代码语言:javascript
复制
Missing template users/create, application/create with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in: * "/Users/chris/rails/demo_app/app/views"

它看起来像是试图在应用程序中创建一个名为create的新文件,但我真的不确定它为什么要这么做?

这是我的users_controller.rb

代码语言:javascript
复制
def new
 @user = User.new
 @title = "Sign up"
end

def create
 @user = User.new(params[:user])
 if @user.save
  flash[:success] = "Welcome to the Sample App!"
  redirect_to @user
 else
  @title = "Sign up"
  render = 'new'
  end
 end
end

这是我的_error_messages.html.erb

代码语言:javascript
复制
<% if @user.errors.any? %>
  <div id="error_explanation">
    <h2><%= pluralize(@user.errors.count, "error") %> 
        prohibited this user from being saved:</h2>
    <p>There were problems with the following fields:</p>
    <ul>
    <% @user.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>

我真的不确定要列出的其他文件,所以如果我错过了任何重要的东西,请让我知道!

谢谢:)

克里斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-29 05:33:36

Render是一个函数,而不是一个变量,所以你不想说render = 'new',你想把字符串‘render = 'new'’传递给render函数,所以render 'new'应该工作得很好。这是学习Ruby的难点,缺少括号有时会让人们对变量和函数感到困惑。

票数 1
EN

Stack Overflow用户

发布于 2012-02-29 05:30:58

而不是

代码语言:javascript
复制
render = 'new'

尝试使用:

代码语言:javascript
复制
 render :action => 'new'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9490020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档