2014-02-28 59 views
0

我想在我的rails應用程序中創建一個新頁面,您可以在登錄後訪問該頁面。您只需看到現有用戶的下拉菜單和下拉菜單使用提交按鈕將角色添加到該用戶的user_role列的角色。難道我這樣做了在Rails中創建新頁面以向現有用戶添加角色

rails g controller add_roles new create 

rails g scaffold add_roles 

我如何得到它提交正確的信息給用戶的表?

回答

1

從我的理解,一個鐵軌腳手架是一套完整的控制器,模型和遷移。在你的情況下,我不認爲你想要一個add_roles_controller和一個add_roles模型,你只是想更新一個現有的用戶DB的列是否正確?

如果是這樣,問問自己是否真的需要一個控制器來做到這一點,這種類型的功能可以在現有的user_controller(或類似的東西)中完成。如果您要使用CRUD路線,則可以將此視爲用戶更新。

您可以從任何控制器的活動記錄通話,可以說你在user_controller是,你有一個用戶模式,你可以這樣做:

@users = Users.all 

這將返回所有的對象用戶存儲在數據庫中可以循環訪問它們,挑選出每個人的角色屬性。

如果您在創建表單時需要幫助,您需要詳細說明,這將需要更改路由以響應某個控制器操作的POST。然後,該控制器操作可以獲取該帖子的參數,例如用戶的角色,並相應地更新用戶數據庫

如果您還沒有,請查看gem devise - 這是一種非常簡單的登錄/註銷方式,它包括一些非常棒的會話管理 Devise

如果你想要更多的功能,我會考慮rolify。我沒有使用它,但它似乎是向用戶添加角色的好方法。 Rolify

+0

我將如何訪問另一個表中的所有用戶?就像我有一個Users表和一個Companies表一樣。所有用戶都與公司相關聯。我只想顯示與current_user的公司相關的用戶 – user3032873

+0

我對活動記錄關聯不太熟悉,但如果您還沒有閱讀它,我會推薦它。這聽起來像一個用戶屬於一家公司,而一家公司有很多用戶。如果這種關係設置得當,你應該可以運行'@c = current_user.company'這樣的方式來返回一個特定的公司對象,你可以通過'@ c.users.all'來獲取所有的用戶那家公司。 – jimmycouch

相關問題