0

簡単なログイン検証を行い、名前とパスワードを検証したいと思います。

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:ダイジェストはこれを安全にすることです。

誰かが何か入力を提供できますか?

4

1 に答える 1

0

ユーザーを名前で検索しているように見えますが、引数としてユーザー属性で構成されるハッシュを指定します(params[:user])。それが理由であり、このエラーが表示されて@userいると思います。nil

params[:user][:name]引数を変更してより良い結果が得られるかどうかを確認できますか?

于 2012-08-13T15:36:34.010 に答える