[英]declarative_authorization problem with creating new user
我為我的應用程序使用了clarativeative_authorization,但是在創建新用戶時遇到了問題。
我的用戶模型代碼:
class User < ActiveRecord::Base ROLE_TYPES = ["admin", "user", "guest"] validates_inclusion_of :roles, :in => ROLE_TYPES def role_symbols @role_symbols ||= (roles || []).map{|r| r.to_sym} end
我的查看代碼:
<% form_for(@user) do |f| %> ... <p> <%= f.label :roles %><br /> <%= f.select :roles, User::ROLE_TYPES, :prompt => "Select a role" %> </p> <%= f.submit 'Add User' %> <% end %>
每次我嘗試創建新用戶並從下拉列表中選擇角色時,都會查看投訴:
Roles is not included in the list
從腳本/服務器的輸出中,我可以看到角色實際上已設置:
"user"=>{"name"=>"kc", "password_confirmation"=>"kc", "roles"=>"guest", "password"=>"kc", "email"=>"kc@one.com"}
誰能告訴我怎么了? 為什么驗證不通過?
是否有可能在用戶上具有attr_accessible
屬性,以防止對某些屬性進行大量分配,而:roles
不在其中? 不過,您會在日志中收到有關此問題的警告。 restful_authentication生成的默認User類的確包含attr_accessible調用,因此如果您也使用該身份驗證插件,則可能無需添加就可以將其存在。
肯定有適合用戶的正確類型的角色屬性嗎? 看起來您期望角色是表單中的單個字符串,但是在declarative_authorization的代碼中(roles || []).map
暗示這部分代碼至少期望一個數組)角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.