ruby on rails -获得一个NoMethodError



我得到这个错误:

显示/用户/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以外的东西?

相关内容

  • 没有找到相关文章

最新更新