2012-04-24 93 views
1

我正在使用具有用戶和授權模型的Rails應用程序。 Eacch用戶可以擁有許多授權,並且每個授權都屬於特定用戶。我爲此使用了belongs_to關聯。現在,當我試圖使用如何在rails中的belongs_to關聯中訪問字段

user = User.find(params(:id)) 
auth = user.authorizations 

現在的問題是,當我嘗試使用

auth.id 

我沒有得到任何方法發現錯誤訪問授權領域訪問特定用戶的授權,但以下

Authorization.first.id 

工作正常。他們之間有什麼區別?

回答

1
auth = user.authorizations 

現在AUTH將授權對象的數組

auth.first.id 

會工作,除非數組不爲空

+0

@sounder感謝我錯過了一些基礎知識在這裏 – santosh 2012-04-24 10:22:29

2

如果用戶的授權(用戶has_many :authorizations然後user.authorizations返回數組實際上它返回AR:Relation,但現在沒關係)。所以,如果你想獲得第一授權id可以使用user.authorizations.first,如果你想獲得該用戶的授權,所有的ID,你可以使用user.authorizations.map(&:id)

+0

感謝我錯過了一些基礎知識在這裏 – santosh 2012-04-24 10:22:45

1
@authorizations = user.authorizations 

將返回權限的列表。所以你只要形成一個循環,然後獲取字段值。例如

@authorizations.each do |auth| 
    auth.id 
end 
+0

感謝我錯過了一些基礎知識在這裏 – santosh 2012-04-24 10:23:02

相關問題