2015-05-04 4 views
1

Я получаю сообщение об ошибке в моем приложении Rails, когда я пытаюсь любить картинку из списка твитов, которые вытаскивают с помощью API Twitter.ActiveRecord :: StatementInvalid в PicController # избранное

Вот pic_controller.rb

class PicController < ApplicationController 
    def favorite 
     if current_user.present? 
      pic = Pic.find(params[:url]) 
      FavPic.create pic: pic, user: current_user 
      # user and pic automaically have this `FavPic` assigned 
     end 
    end 
end 

и вот user.rb

class User < ActiveRecord::Base 
    def self.from_omniauth(auth) 
    user = where(provider: auth.provider, uid: auth.uid).first || create_from_omniauth(auth) 
    user.oauth_token = auth["credentials"]["token"] 
    user.oauth_secret = auth["credentials"]["secret"] 
    user.save! 
    user 
    end 

    def self.create_from_omniauth(auth) 
    create! do |user| 
     user.provider = auth["provider"] 
     user.uid = auth["uid"] 
     user.name = auth["info"]["nickname"] 
    end 
    end 

    def twitter 
    if provider == "twitter" 
     @twitter ||= Twitter::Client.new(oauth_token: oauth_token, oauth_token_secret: oauth_secret) 
    end 
    end 

    has_many :fav_pics 
    has_many :pics_favorited, 
    class_name: 'Pic', 
    through: :fav_pics 

end 

class FavPic < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :pic 
end 

class Pic < ActiveRecord::Base 
    has_many :fav_pics 
    has_many :fav_users, 
    class_name: 'User', 
    through: :fav_pics 
end 

Не знаете, где я неправильно или как побеспокоить всход, но это ошибка, я получаю. PG::UndefinedTable: ERROR: relation "pics" does not exist LINE 5: WHERE a.attrelid = '"pics"'::regclass^: SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"pics"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum

+1

Вы запускаете 'rake db: migrate'? предполагая, что у вас есть миграция, чтобы создать таблицу 'pics'. – DiegoSalazar

+0

@ diego.greyrobot Как мне создать миграцию? Я думаю, это то, что мне не хватает, потому что я запускал 'rake db: migrate', как было предложено на многих q. Я просмотрел – sdybskiy

+0

показать вам файл' schema.rb' –

ответ

0

Я думаю, вы должны создать первую таблицу миграции для этого запуска «rails g migration create_ (name of the table)». Затем после выполнения запустите в терминале «rake db: migrate».

Смежные вопросы