Почему я получаю сообщение об ошибке «Не удалось найти таблицу». - PullRequest
0 голосов
/ 31 августа 2011

Я относительно новичок в Rails и получаю вышеуказанную ошибку всякий раз, когда тестирую свою страницу входа.Вот файл тестового представления:

<%= form_for :user, :url => create_path do |f| %>
  <p> Email: <br />  <%= f.text_field :email %></p>
  <p> Password: <br />  <%= f.password_field :password %></p>
  <p><%= submit_tag "Sign In", :disable_with => "Please wait...", :class => "btn primary" %></p>
<% end %>

Вот контроллер пользователя:

class UsersController < ApplicationController   
  before_filter :get_user, :except => [:register, :login, :create]
  before_filter :user_signed_in?, :only => [:delete]

  def create
    if user = User.find_by_email(params[:user][:email]).try(:authenticate, params[:user][:password])
      session[:user_id] = user.id
      redirect_to root_path # Or whatever you want i.e. redirect_to user
    else
      render :new, :flash => { :error => "Bad email/password combination" }
    end
  end

  def delete
    session.delete(:user_id)
  end

  def register
    if Invite.find_by_hash(params[:hash]).blank?
      redirect_to root_path
      return
    end
    @user = User.new(params[:user])
    if(request.post? and @user.save)
      flash[:notice] = "Account Created Successfully"
      redirect_to root_path      
      return
    else
      flash.now[:warning] = @user.errors.full_messages
    end
  end

  def destroy
    @user = User.find(params[:id])
    @user.destroy
    redirect_to root_path
  end

  def login

  end

  def get_user
    @user = User.find(params[:id])
  end

end

И моя модель пользователя:

class User < ActiveRecord::Base
  has_secure_password
  validates :email, :presence => true, :uniqueness => true, :length => {:minimum => 6}
  validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
  validates :name, :presence => true, :length => {:maximum => 32}
  validates :password, :presence => true, :length => {:minimum => 8}
  validates :username, :presence => true, :length => {:maximum => 20}, :uniqueness => true
  validates :blog, :uniqueness => true
  has_many :posts
end

Точная ошибка, которую я получаюэто:

ActiveRecord::StatementInvalid in UsersController#create
Could not find table 'users'

PS: я использую Rails 3.1.0.rc8.Любая помощь будет оценена.Спасибо.

ОБНОВЛЕНИЕ: Кажется, я не могу найти таблицу.Я только что обновился до Rails 3.1, до этого все было хорошо.

1 Ответ

1 голос
/ 31 августа 2011

Если вы только что обновились до Rails 3.1 и все работало до обновления, проверьте конфигурацию database.yml. Я сомневаюсь, что конфигурация вернулась к настройкам по умолчанию из-за обновления.

Если нет, следуйте предложению Раджкамала и убедитесь, что вы запустили миграцию.

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