私は小さな問題に遭遇しました私はここに関係を通してhas_manyを持っていますモデルのコードです
class User < ActiveRecord::Base
has_many :friendships
has_many :followings, :through => :friendships, :foreign_key => "followed_id"
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :following, :class_name => "User", :foreign_key => "followed_id"
end
これで、コンソールでu = User.firstと入力し、次にu.friendships.first.followingと入力すると、uがフォローしている最初のユーザーが表示されますが、u.friendships.last.followingと入力すると、このエラーが発生します。
u.friendships.first.followingからのSELECTステートメント
Friendship Load (0.3ms) SELECT `friendships`.* FROM `friendships` WHERE `friendships`.`user_id` = 208 LIMIT 1
User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 209 LIMIT 1
およびu.friendships.last.followingからのSELECTステートメント
Friendship Load (0.3ms) SELECT `friendships`.* FROM `friendships` WHERE `friendships`.`user_id` = 208 ORDER BY `friendships`.`` DESC LIMIT 1
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'friendships.' in 'order
clause': SELECT `friendships`.* FROM `friendships` WHERE `friendships`.`user_id` = 208
ORDER BY `friendships`.`` DESC LIMIT 1
その後、u.friendshipsを実行してからu.friendships.last.followingを再度実行すると、エラーは発生しなくなります。これはなぜですか。