0
我在我的模型如下關係:如何訪問控制器中的模型嵌套屬性?
- security_user.rb
has_many :security_users_roles_to_users has_many :security_users_roles, through: :security_users_roles_to_users accepts_nested_attributes_for :security_users_roles
- security_users_roles_to_users.rb
belongs_to :security_user
belongs_to :security_users_role
- security_users_roles.rb
has_many :security_users_roles_to_users
has_many :security_users, through: :security_users_roles_to_users
的目的是創建用戶和角色模型之間的許多一對多的關係。
當創建一個新用戶時,我想設置爲默認角色(例如用戶)。所以,在我security_users_controller.rb,在創建行動,我有:
@security_user = SecurityUser.new(params[:security_user])
@security_user.security_users_roles.role = 'user'
,但我得到了以下錯誤:未定義的方法`角色=」爲...
爲什麼我無法以上述方式訪問屬性?
注意:我沒有傳遞來自用戶角色的任何信息。
謝謝,但我得到了下面的錯誤 - 你不能調用創建除非家長有保存應用程序/控制器/ security_users_controller.rb。另外,使用構建,它似乎在伎倆,但也許我沒有做正確的想法。在我的角色模型中,我應該有一個記錄「用戶」,所以也許我需要在連接表中添加記錄以標記該用戶是否處於此角色? – gotqn
是的,我犯了一個錯誤,檢查更新的答案! –
Mxm,我收到此錯誤 - 無法批量分配受保護的屬性:security_users_role。你有什麼想法是什麼導致它? – gotqn