2012-06-22 71 views
2

在Rails應用程序的一個我的型號名稱爲OrganizationUser,是有什麼辦法來創建此模型OU或OrgUser,這樣我可以在鐵軌控制檯使用別名..別名軌道模型

+2

http://stackoverflow.com/questions/7795809/class-alias-in -ruby –

回答

6

如果kishie的答案不適合你,你可以創建另一個模型,從OrganizationUser繼承:

class OU < OrganizationUser 
end 

class OrgUser < OrganizationUser 
end 
+0

在少數情況下,這實際上有點冒險,特別是STI模型,或者任何需要特定類別類型的東西。它會工作,但讓我有點緊張。 –

+0

@DaveNewton:說實話我完全錯過了操作系統的目標是在控制檯中使用名稱,在這種情況下,我會去找kishie的答案(OU = OrganizationUser),我自己過去也是這樣。但是,如果您正在使用的是爲給定類使用不同名稱,那麼我不會看到上述代碼存在問題。 – pepe

+1

在STI下,它會在DB中創建錯誤的類型列;這*可能不是問題,但它引入了一個不存在的類型層次結構。不是必然的問題,就像我說的,但IMO不是一個好主意 - YMMV :) –

1

要在一個更清潔側工作。假設你有一個模型

class Home < ActiveRecord::Base 
     class << self 
     def agent 
      p "This is a Dummy String" 
     end 
    end 
    end 

步驟1

創建您的lib內alias.rb。其中將包含您的別名映射和常量持有這些映射

module Alias 
C = Home #to make a alias of class 
H = Home.new #a class object alias 
end 

步驟2

轉到軌道ç

rails c 
"inside it for loading" 
Loading development environment (Rails 3.2.1) 
ruby-1.9.3-preview1 :001 > require 'alias' 
=> true 

ruby-1.9.3-preview1 :002 > include Alias 
=> Object 

ruby-1.9.3-preview1 :003 > C 
=> Home(id: integer, created_at: datetime, updated_at: datetime) 

ruby-1.9.3-preview1 :004 > H 
=> #<Home id: nil, created_at: nil, updated_at: nil>