Я просматриваю GitHub глядя на прохладном коде, но не понимаю, что делает этот код:Не уверен, как этот код читает
Я понимаю, что есть 2 BELONGS_TO ассоциации, но я не понимаю, что Метод «self.request» означает и что он делает.
Кроме того, это не транзакция, предназначенная для запросов к базе данных SQL, а не для рубинового кода?
Не могли бы вы прояснить ситуацию?
class Friendship < ActiveRecord::Base
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
belongs_to :user
def self.request(user, friend)
unless user == friend or Friendship.exists?(user, friend)
transaction do
create(:user => friend, :friend => user, :status => 'requested')
create(:user => user, :friend => friend, :status => 'pending')
end
end
end