Ruby on rails MHartl教程错误:未定义方法“model#u name';班级:班级
因此,我正在努力学习mhartlrails教程,到目前为止,它非常棒,尽管我刚刚遇到了第一个错误,我很难找到一个有效的解决方案 错误:Ruby on rails MHartl教程错误:未定义方法“model#u name';班级:班级,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,因此,我正在努力学习mhartlrails教程,到目前为止,它非常棒,尽管我刚刚遇到了第一个错误,我很难找到一个有效的解决方案 错误: NoMethodError in Users#new Showing /Users/myname/Sites/rails_projects_updated/first_app/app/views/users/new.html.erb where line #6 raised: undefined method `model_name' for NilCla
NoMethodError in Users#new
Showing /Users/myname/Sites/rails_projects_updated/first_app/app/views/users/new.html.erb where line #6 raised:
undefined method `model_name' for NilClass:Class
Extracted source (around line #6):
3:
4: <div class="row">
5: <div class="span6 offset3">
6: <%= form_for(@user) do |f| %>
7:
8: <%= f.label :name %>
9: <%= f.text_field :name %>
NoMethodError在用户中#新增
显示/Users/myname/Sites/rails\u projects\u updated/first\u app/app/views/Users/new.html.erb,其中第6行出现:
NilClass:Class的未定义方法“model_name”
提取的源(第6行附近):
三:
4:
5:
6:
7:
8:
9:
New.html.erb:
<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for(@user) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
注册
和用户控制器
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def create
@user = User.new(params[:user])
if @user.save
# Handle a successful save.
else
render 'new'
end
end
end
class UsersController
任何帮助都将不胜感激!谢谢。您的控制器肯定缺少以下方法:
def new
@user = User.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @user }
end
end
发生的情况是,当窗体响应创建操作并点击本问题中没有的
render'new'
时。因此,当呈现new
操作时,它将执行@user=user.new
,这将使您能够创建一个新用户 新的方法在哪里?@TonyP如果这回答了您的问题,请将其标记为完成