2
我試圖創建一個允許管理員用戶更改其他用戶的指定角色的Rails表單。我創建的表單會向用戶註冊更改(如密碼或登錄更改),但不會將更改註冊到用戶的角色,這是一個單獨的模型。通過表單更改用戶角色
我正在使用Acl9進行基於角色的身份驗證,該身份驗證使用用戶模型,角色模型和鏈接這兩者的Roles_user模型。
下面是我在我的表單代碼:
<h1>Edit User</h1>
<% form_for(@user) do |form| %>
<%= error_messages_for :user %>
Login: <%= form.text_field :login %><br />
Password: <%= form.password_field :password %><br />
Password Confirmation: <%= form.password_field :password_confirmation %><br />
<% if current_user && current_user.has_role?(:admin) %>
<%= error_messages_for :roles %>
<% fields_for :roles do |role| %>
<%=
@roles = Role.find(:all, :order => "name").map {|u| [u.name, u.id] }
role.select(:id, @roles)
%>
<% end %>
<% end %>
<%= form.submit "Update" %>
<% end %>
<br />
<%= link_to "My Profile", account_path %>
<%= link_to "Logout", user_session_path, :method => :delete, :confirm => "Are you sure you want to logout?" %>
加載頁面時,我沒有得到任何錯誤,但所選擇的角色沒有得到相關用戶。任何幫助,將不勝感激。謝謝!
當我嘗試使用嵌套的屬性,我得到一個SQL異常: 「沒有這樣的列:users.user_id:SELECT * FROM 」用戶「 WHERE(」用戶「.user_id = 12)」。 將相關的代碼行從「user_form.fields_for」更改爲「fields_for」會照顧該錯誤,但會將我留在我開始的位置,並且選定的角色不與用戶關聯。 – 2009-11-19 22:36:37