2010-02-24 28 views
5

Trong mô hình của tôi, tôi có muốn kiểm tra xem ứng dụng có đang chạy bên trong bảng điều khiển IRB hay dưới dạng trang web không?Đường ray kiểm tra xem bảng điều khiển hoặc trang web IRB

class MyModel < ActiveRecord::Base 
    def xmethod 
    if !isIRBconsol 
     self.user_id = UserSession.find.user.id 
    end 
    end 
end 
+3

Bạn có thể nói lý do bạn muốn điều này không? Vấn đề lớn hơn có thể có một giải pháp tốt hơn. –

+0

Tôi muốn đặt trường user_id của mô hình before_save. Bởi vì UserSession không tồn tại trong IRB, tôi thử smth như thế. Solutiom tốt hơn? – xpepermint

Trả lời

3

Đây là một chút của một hack, nhưng nó cũng làm việc:

class MyModel < ActiveRecord::Base 
    def am_i_in_irb? 
    self.private_methods.include? 'irb_binding' 
    end 
end 

Nhưng khi Kathy Van Stone nói ở trên, đây có lẽ là một cái gì đó mà có một giải pháp tốt hơn.

3

Tại sao không chỉ if defined?(IRB)?

+2

Điều này dường như không hoạt động tùy thuộc vào phạm vi của bạn, tôi đã giải quyết trên 'Rails.const_defined? ('Console')' hiện tại. – toupeira

0
unless self.private_methods.include? 'irb_binding' 
    #put your rufus scheduling here 
end 
Các vấn đề liên quan