安Item has_many Pieces.我有两种方法,一种可以找出这件作品是否可用,另一种可以找出一件作品是否有可用的作品.
# 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
Run Code Online (Sandbox Code Playgroud)
我的available?方法Item是错的.我希望它返回,true如果Item有可用pieces,false如果没有.我的代码背后的理论是该方法返回,false除非有一个返回的片断true.当我在控制台中执行此操作时,我得到的是散列中的碎片,而不是真或假.
任何人都可以解决我的问题或告诉我更好的方法吗?
tok*_*and 10
def available?(current_user, user, item)
item.pieces.any? do |piece|
piece.available?(current_user, piece)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13053 次 |
| 最近记录: |