Я новичок в рельсах (использую рельсы 6), и у меня есть вопрос, на который я не ответил на сайте для моего конкретного случая использования.
Основной сценарий такой же, как вмногие вопросы - добавление аутентификации на основе ролей в приложение rails при использовании devise.
Я реализовал это, создав таблицу ролей и установив отношения между ними и таблицей пользователей.
Мне нужно только два пользователя: гость и администратор, и у них есть 1, 2 идентификатора, соответственно. Я вставил значения в таблицу ролей вручную, используя консоль rails.
Теперь у меня проблемы с формой регистрации, которая является одним из созданных по умолчанию драгоценных камней:
<h2>Sign up</h2>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= render "devise/shared/error_messages", resource: resource %>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email, autofocus: true, autocomplete: "email" %>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "new-password" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "new-password" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
Я хочу добавить поле выбора, в котором будут отображаться «admin» и «guest», и когда пользователь отправит форму, правильный role_id будет добавлен в запись пользователя в пользовательской таблице, но я неузнайте, как сообщить представлению devise о существовании таблицы ролей и как сопоставить строковое значение роли с идентификатором роли, который должен иметь пользователь.
Итак, мои вопросы:
Как добавить роли в поле выбора в форме регистрации устройства?
Как обработать после того, как пользователь выберет одну из имен ролей,и сопоставить его с идентификатором роли, который будет добавлен пользователю при обработке формы?
Я видел следующие вопросы и многим они нравятся, но я не видел ни одного из нихработа с соответствующей строкой с идентификатором befoФорма отправлена:
Devise Add Admin Role
как автоматически добавить роль пользователю при регистрации с помощью devise
Добавление полей для разработки Регистрация с использованием Rails 4
Несколько моделей, связанных с разработчиком пользователя - заполните одну модель на основе выбора роли
Если на мой вопрос возник вопрос, извините, и я был бы рад получить ссылку и закрыть этот вопрос.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Спасибо!