我收到此错误:
显示/Users/nelsonkeating/Desktop/imright/app/views/users/new.html.erb第4行引发:
NilClass:Class的未定义方法`model_name' 提取的来源(第4行):
4: <%= form_for(@user) do |f| %>
5: <div class="field">
6: <%= f.label :name %><br />
7: <%= f.text_field :name %>
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
@user
不存在(查看错误,因为它说它是一个NilClass)。
你要么做:
form_for(User.new) do |f|
或在控制器中设置@user
;
class UsersController
def new
@user = User.new
new
end
我建议使用后者,因为MVC不会在你的视图中放置模型调用是一个经验法则。
答案 1 :(得分:1)
尝试查看页面 &lt;%= form_for @user,:url =&gt; {:action =&gt;“create”}执行| f | %GT; 在控制器中 def new @user = User.new 端
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Registration successful."
redirect_to(:controller =>"user_sessions", :action =>"new")
else
render :action => 'new'
end
end
答案 2 :(得分:0)
这表明@user是零。也许您将变量名称从@user更改为控制器中的其他名称并忘记在视图中更改它?也许这个视图在错误发生后在创建或更新操作中呈现,并且在这些操作中除了@user之外还调用了变量?