2012-08-13 34 views
0

我做了一個簡單的登錄驗證,我想驗證名稱和密碼。示例登錄驗證Rails「未定義的方法`model_name'爲NilClass:類」

finances_controller .RB

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

    end 

login.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 %> 

模型 user.rb

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

end 

ps:摘要是爲了保證安全。

任何人都可以提供任何輸入?

回答

0

好像你在用她的名字搜索一個用戶,但給出一個包含用戶屬性作爲參數的散列(params[:user])。我認爲這就是@user仍然是nil的原因,並顯示此錯誤。

你能否檢查一下,如果更改參數爲params[:user][:name]會給出更好的結果?

+0

返回此錯誤絲毫(PARAMS [:用戶] [:名稱]) '未定義的方法[]」爲零:NilClass' – Overduka 2012-08-13 15:49:52

+0

好像'PARAMS [:用戶]'是零。請檢查你發送的參數 – shime 2012-08-13 15:53:55

+0

我發送這個'<%​​= form_for @user do | f | %> Nome:<%= f.text_field:name%> Senha:<%= f.password_field:password%> <%= f.submit%><%end%>' – Overduka 2012-08-13 16:01:25

相關問題