簡體   English   中英

創建新用戶時的clarativeative_authorization問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM