0
我一直在試圖實現一個Facebook風格的朋友系統。我讀過幾篇教程,並且無法理解我在做什麼錯誤。友誼控制器和添加好友的視圖中的鏈接工作,但在數據庫級別,它會引發錯誤。友誼自助參考
當我打開軌道控制檯,並提出:
User.find(1).friends << User.find(2)
我得到:
SQL (0.4ms) INSERT INTO "friendships" ("user_id", "friend_id", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["user_id", 1], ["friend_id", 2], ["created_at", "2017-10-14 15:01:28.364691"], ["updated_at", "2017-10-14 15:01:28.364691"]]
(0.1ms) rollback transaction
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: main.friends: INSERT INTO "friendships" ("user_id", "friend_id", "created_at", "updated_at") VALUES (?, ?, ?, ?)
from (irb):1
user.rb
has_many :friendships, dependent: :destroy
has_many :friends, through: :friendships
# these are used in the controller
def befriend(user)
friends << user
end
def unfriend(user)
friends.delete(user)
end
def friends?(user)
friends.include?(user)
end
friendship.rb
belongs_to :user
belongs_to :friend, class_name: 'User', foreign_key: "friend_id"
validates :user_id, presence: true
validates :friend_id, presence: true
我正在使用Devise進行身份驗證。
嗨,你的代碼似乎不幸產生同樣的錯誤。我認爲這個問題是,當創建一個友誼時,它會拋出'沒有這樣的表:main.friends'錯誤。鏟子語法(<<)將第二個用戶添加到第一個用戶的集合代理中並創建了友誼,但似乎在創建友誼方面存在問題 – mef27