一个Item
has_many
Pieces
。我有两种方法,一种是判断 Piece 是否可用,另一种是判断 Item 是否有可用的部分。
# in piece.rb
def available?(current_user, piece)
if piece.status == 1
true
elsif piece.status == 2
false
elsif piece.status == 3
true if piece.friend_id == current_user.id
end
end
#in item.rb
def available?(current_user, user, item)
false
item.pieces.each do |piece|
if piece.available?(current_user, piece)
true
end
end
end
我的available?
方法Item
是错误的。true
如果Item
有可用pieces
,我希望它返回,false
如果没有。我的代码背后的理论是该方法返回false
,除非有一个返回true
。当我在控制台中执行此操作时,我得到的只是散列中的片段,而不是真假。
任何人都可以解决我的问题或告诉我更好的方法吗?