0
我發現了一些我在Ruby中編寫的方法的奇怪行爲。當我用兩個參數調用該方法時,控制檯說它期望0..1
,但是當我傳遞一個參數時,它表示它期待着兩個參數。任何人都可以向我解釋爲什麼?Ruby方法期望錯誤的參數個數
class Friendship < ApplicationRecord
belongs_to :user
belongs_to :friend, :class_name => "User"
def self.request(user,friend)
unless user == friend or Friendship.exists?(user,friend)
transaction do
create(:user => user, :friend => friend, :status => 'pending')
create(:user => friend, :friend => user, :status => 'requested')
end
end
end
def self.accept(user,friend)
transaction do
accepted_at = Time.now
accept_one_side(user,friend,accepted_at)
accept_one_side(friend,user,accepted_at)
end
end
def self.accept_one_side(user,friend,accepted_at)
request = find_by_user_id_and_friend_id(user,friend)
request.status = 'accepted'
request.accepted_at = accepted_at
request.save!
end
end
這是請求方法,我在控制檯中調用,像這樣:
Friendship.request(user1,user2)
其中user1
和user2
都在我的數據庫中的第一和第二用戶。
添加更多的相關信息的問題......你到底是什麼調用的方法,你怎麼那麼控制檯上調用,什麼是產出? –
我有一種感覺,第一個錯誤是在你的方法內部的一個方法,然後第二個錯誤是在調用你的方法時。 – engineersmnky
當你打電話*什麼*方法?你打電話過得怎麼樣?什麼是確切的堆棧跟蹤? –