SORRY ::我忘记了使用current_user.id在控制器中不存在params [:user_id]!
我写了一个方法,返回用户出价的地方值数组,例如[2,8,10]。在Rails控制台中,它工作正常,但控制器中的实例变量将nil返回给浏览器。发生了什么事?
此方法从控制台
返回[1,2,3]等数组 def bid_places(bid_user_id, auction_id)
unique_bids = Bid.find_all_by_auction_id(auction_id).uniq
unique_bids.sort! {|a, b| b.point <=> a.point }
a, n, places = 0, 0, []
until a == 3 || n == unique_bids.count
place = n + 1
user = unique_bids.values_at(n).first.user_id
if user == bid_user_id
places[a] = place
a += 1
end
n += 1
end
places
end
在控制器中,返回[](使用调试器)
@user_places = @bid.bid_places(params[:user_id], params[:auction_id])
=> []
答案 0 :(得分:0)
问题,您的方法实际上是否返回了某些内容?尝试明确定义一个回报,看看它是否适合你?
脚本/控制台(和irb)经常进行STDOUT评估,返回实际上未返回的内容以提供更多调试帮助。