我實現has_and_belongs_to_many
協會這樣:
模型/角色
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
end
模型/用戶
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
end
用戶/ _form.html.erb
---
----
-----
<div class="field">
<% for role in Role.all %>
<div>
<%= check_box_tag "user[role_ids][]", role.id, @user.roles.include?(role) %>
<%= role.name %>
</div>
<% end %>
</div>
users_controller.rb
def user_params
params.require(:user).permit(:name, :email, { role_ids:[] })
end
中間體表名應該是roles_users並且應該有兩個字段:
- ROLE_ID
- user_id說明
'check_box_tag'缺少右括號 – LukasMac
Thanks @LukasMac。固定。 – Coenwulf