не могу зарегистрироваться (ошибка для метода 'object'), не могу войти (ошибка для метода 'create') - PullRequest
0 голосов
/ 01 декабря 2011

, когда я пытаюсь зарегистрироваться на моем локальном хосте, это ошибка, которую я получаю:

NameError in Users#new
Showing /Users/alonbond/rails_projects/sample_app/app/views/shared/_error_messages.html.erb where line #1 raised:
undefined local variable or method `object' for #<#<Class:0x007f90a3c32d60>:0x007f90a3bf83b8>
Extracted source (around line #1):

    1: <% if object.errors.any? %>
    2:   <div id="error_explanation">
    3:     <h2>
    4:       <%= pluralize(object.errors.count, "error") %>

это код "new"

<h1>Sign up</h1>

<%= form_for(@user) do |f| %>
  <%= render 'shared/error_messages', :object => f.object %>
  <%= render 'fields', :f => f %>
  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>  

Моя вторая проблема заключается в том, когдаЯ пытаюсь войти (я уже регистрировался):

NoMethodError in SessionsController#create
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]

это код для метода 'create':

def create
    user = User.authenticate(params[:session][:email], params[:session][:password])

    if user.nil?
      flash.now[:error] = "Invalid email/password combination."
      @title = "Sign in"
      render 'new'
    else 
      sign_in user
      redirect_back_or user
    end  
  end

for_for:

<%= form_for(:session, :url => sessions_path) do |f| %>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %><br />
    <%= f.password_field :password %>
  </div>
  <div class="actions">
    <%= f.submit "Sign in" %>
  </div>
<% end %>

1 Ответ

0 голосов
/ 01 декабря 2011

Используйте @user для локальной переменной в парциальном, используйте flash[:error] для флеш-сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...