我是Ruby on Rails的新手,我創建了一個包含用戶表(由devise生成)和包含用戶特定帳戶設置的AccountSetting表的項目(此表有一個與用戶表中的id相關的外鍵,因此每個用戶有零個或一個AccountSettings)。我的種子數據工作正常,我可以爲擁有用戶特定帳戶設置的用戶創建數據庫。用戶表與AccountSetting表相關,其中包含「has_one:accountsetting」和AccountSettings表「belongs_to:user」。這一切都有用並且合理。但是,我在我的UserSettings控制器中有一個名爲「show_user_setting」的方法,我不知道如何只顯示該特定身份驗證用戶的帳戶設置。用設計在Ruby on Rails中創建用戶帳戶設置頁面
那麼,我怎樣才能顯示當前登錄用戶的用戶設置?再次,我正在使用設計。 我的一般想法是如何做到這一點。不過,我知道這是不正確的,但爲了解釋的目的,這裏是。
def show_user_setting
@setting = AccountSetting.find(current_user)
end
我的想法是@setting將包含當前登錄用戶的設置。提前致謝!
這工作!謝謝!還有一件事。如果我有一個類似的模型,其中用戶表has_many:someothermodel我仍然可以使用相同的.find(user_id:current_user.id)來獲取整個列表?或者這隻會返回一個值到@setting? –
@CannonMoyer如果它是'has_many'關係,您可以像訪問模型上的屬性那樣訪問它。所以,假設你有一個'User'模型。和那個用戶'has_many'狗('狗')。並且您在該用戶的實例的顯示頁面上,並且有一個實例變量@user。在頁面上,你可以使用'@ user.dogs'。更實際:'@ user.dogs.each do | dog |'。同一個控制器。你可以像'@dogs = User.find(params [:id])。dogs'一樣設置狗實例變量。 [更多](http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association)。 – user2826911