0

我做了一个简单的登录验证,我想验证名称和密码。

财务控制器.rb

  def login
    @user = User.find_by_name(params[:user])
    if @user
      session[:user_id] = @user.id
      redirect_to :action => 'index'
    end

  end

登录.html.erb

<h1>Login</h1>
<%= form_for @user do |f| %>
Nome: <%= f.text_field :name %>
Senha: <%= f.password_field :password %>
<%= f.submit %>
<% end %>

这是错误:

undefined method `model_name' for NilClass:Class

Extracted source (around line #2):

1: <h1>Login</h1>
2: <%= form_for @user do |f| %>
3: Nome: <%= f.text_field :name %>
4: Senha: <%= f.password_field :password %>
5: <%= f.submit %>

模型用户.rb

class User < ActiveRecord::Base
  attr_accessible :name, :password, :password_digest

end

ps:摘要是为了确保安全。

任何人都可以提供任何输入吗?

4

1 回答 1

0

似乎您正在按她的名字搜索用户,但给出一个由用户属性组成的哈希作为参数 ( params[:user])。我认为这是@user仍然存在的原因nil,并且显示了此错误。

你能检查一下改变参数是否能params[:user][:name]得到更好的结果吗?

于 2012-08-13T15:36:34.010 回答