Я работаю над проектом rails, где у меня есть модели User и Roles, которые я связал с моделью UserRole, используя ассоциацию has_many through
.Теперь моя проблема - отобразить действия пользователей в соответствии с их ролями.Действия состоят из показа, редактирования и удаления.Игрок, администратор и супер администратор должны иметь возможность просматривать и редактировать свои собственные профили.Администратор должен иметь возможность редактировать, назначать и удалять себя и игрока, но он не должен иметь возможность редактировать или уничтожать супер администратора.Супер администратор должен иметь возможность делать все на всех.
Это моя страница указателя, где каждый пользователь отображается со своей информацией, которую я написал только для назначения ролей
<% if signed_in_user.role?'admin' || signed_in_user.role?'super admin' %>
<%= link_to t('.assign_role', default: t("helpers.links.assign")),
new_user_role_path(user_id: user.id),
method: :get,
class: 'btn btn-default btn-xs' %>
<%end%>
это мойсхема
create_table "roles", force: :cascade do |t|
t.string "name"
t.boolean "active"
t.integer "counter"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "user_roles", force: :cascade do |t|
t.integer "role_id"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["role_id"], name: "index_user_roles_on_role_id"
t.index ["user_id"], name: "index_user_roles_on_user_id"
end
create_table "users", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.string "email"
t.string "photo"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end