我是新來的rails,甚至不知道這是否是解決我的情況的正確方法。rails中的屬性和構造函數
我有有一個「的has_many」聯想到「會員」模型中的「俱樂部」 ActiveRecords模型。我想登錄的「俱樂部」,只能夠管理它自己的「會員」,所以在「會員」模型中的每個動作的開始,我做了類似下面的內容:
def index
@members = Club.find(session[:club_id]).members
訪問正確的成員。然而,這並不是非常乾燥,因爲我在每次行動中都做了同樣的事情。所以我想到了使用相當於其他語言中稱爲構造函數的東西。我已經理解了它的初始化方法。然而,這不起作用,this告訴我爲什麼,並提出了一個替代方案。 after_initialize。
def after_initialize
@club = Club.find(session[:club_id])
end
def index
@members = @club.members
....
似乎無法正常工作。任何指向爲什麼?
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.members
讓我覺得@club var沒有設置。
此外,這個解決方案真的很好嗎?這使得很難實施任何可以管理所有俱樂部成員的「超級管理員」。任何想法,我失去了什麼東西?
很好的迴應。正是我在找什麼。我不明白的一件事是before_filter中的第二個參數。你能否澄清一下「:only =>%w(index)」部分? – 2010-01-08 13:07:40
The:only options指定過濾器只應執行索引操作。 – 2010-01-08 16:45:47