2014-09-23 41 views
1

我有一些問題Mongomapper地圖(:ID)

Click.all.map(&:id).include?(params[:click_id]) 

返回假(但在DB目前click_id)

當即時通訊做

Click.all.map(&:id).include?(BSON::ObjectId(params[:click_id])) 

回報非法的ObjectId格式

如何以正確的方式做我想要的? [:click_id]``回報和string``Click.all.map(:ID,如果對象是存在

+1

我希望'PARAMS返回true )'返回整數數組,所以請嘗試'Click.all.map(&:id).include?(params [:click_id] .to_i)' – 2014-09-23 10:34:36

+0

yes,params [:click_id] -string,但Click.all.map (&:id)[BSON :: ObjectId('540f07931d41c86ece000022'),BSON :: ObjectId('540f07931d41c86ece000023'),BSON :: ObjectId('540f07931d41c86ece000024')等返回數組。] – sts 2014-09-23 10:39:40

+0

將其轉換爲字符串。 'Click.all.map {| c | c.id.to_s} .include?(params [:click_id])' – Santhosh 2014-09-23 10:45:06

回答

0

可以實現它通過轉換idString

Click.all.map {|c| c.id.to_s }.include?(params[:click_id])