我得到这个错误:
显示/用户/nelsonkeating/桌面/imright/app/views/用户/new.html。第4行抬高的动词:
未定义的方法' model_name'为NilClass:Class提取的源代码(第4行左右):
4: <%= form_for(@user) do |f| %>
5: <div class="field">
6: <%= f.label :name %><br />
7: <%= f.text_field :name %>
我该怎么做才能解决这个问题?
@user
不存在(查看错误,因为它说它是一个NilClass)。
你可以这样做:
form_for(User.new) do |f|
或在控制器中设置@user
;
class UsersController
def new
@user = User.new
new
end
我建议后者,因为这是一个经验法则,MVC不把模型调用在您的视图。
尝试查看页面& lt; % = form_for @user: url => {: action =>"创建"}f做| | %>在控制器def新@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
表示@user为nil。也许您在控制器中将变量名从@user更改为其他内容,而忘记在视图中更改它?也许这个视图是在错误后的创建或更新操作中呈现的,变量在这些操作中被称为@user以外的东西?