【发布时间】:2008-12-25 19:51:02
【问题描述】:
SORRY:: 我忘记了控制器中不存在 params[:user_id] ,使用 current_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])
=> []
【问题讨论】:
-
如果没有一些代码,真的无法猜测发生了什么。 :P
标签: ruby-on-rails