Сообщение об ошибке ROR - PullRequest
       0

Сообщение об ошибке ROR

0 голосов
/ 23 января 2012
 @supplier_store_array = PurchaseIndentDetail.find(:all,:conditions => 
 "pid.recommended_for = 'PO' and pid.purchase_order_detail_id is null and
 pi.approved_status='Approved' and (pi.amendment_status = 'Approved' or
 pi.amendment_status is null or pi.amendment_status = 'None') and i.is_asset = '0'",
 :joins => "as pid inner join purchase_indents as pi on 
 pi.id=pid.purchase_indent_id inner join items as i on pid.item_id=i.id",
 :select => "pid.*").inject([]){|acc,pid| 

 ih = pid.item.item_subtype.item_type.item_group.store_category.inventory_heads
     .find(:first, :conditions => ["location_id = ?", 
     Location.find(:first, :conditions => ["is_central = true"]).id])

 item_inventory_head_id = ih ? ih.id : pid.item.item_subtype.item_type.item_group
                                      .store_category.inventory_heads[0].id


 acc.include?([pid.supplier_id, item_inventory_head_id]) ? 
 acc : acc << [pid.supplier_id, item_inventory_head_id] 
}

Если какой-либо ih приходит ноль, я должен выйти из цикла и мне нужно выдать сообщение об ошибке.

1 Ответ

2 голосов
/ 23 января 2012

Мне кажется, что я что-то здесь упускаю, но, похоже, вам просто нужно сделать:

if ih.nil?
  raise 'some error'
end

Вы можете создать собственный класс исключений (app / models / my_exception.rb):

class MyException < Exception
end

Тогда:

if ih.nil?
  raise MyException.new
end

Затем вы можете обработать эту ошибку в application_controller, если хотите изящно восстановить ее в приложении rails:

rescue_from MyException do
  render :template => 'my_exception_happened'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...