Я пытаюсь зарегистрироваться с помощью устройства для приложения, которое я делаю.Действие отправки формы отправляет правильные параметры, но мне не удается выполнить одну проверку присутствия.Эта проверка присутствия является полем флажка, где пользователь выбирает при регистрации, являются ли они одиночными или нет.
Вот код для views/devise/registrations/new.html.erb
<div class="radio">
<%= f.label :relationship_status%><br />
<%= radio_button_tag(:relationship_status, "single") %>
<%= label_tag(:single, "Single") %>
<%= radio_button_tag(:relationship_status, "relationship") %>
<%= label_tag(:relationship, "In a relationship") %>
</div>
Вот ApplicationController, где яукажите параметры, которые должны быть переданы помимо значений по умолчанию, предоставленных devise:
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name,
:username, :birthday,
:relationship_status])
end
end
Вот моя пользовательская модель, в которой я устанавливаю основные валидаторы присутствия
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
validates :name, :email, :username,
:birthday,:relationship_status, presence: true
end
Наконец, вот изображениенажав «Зарегистрироваться», я заполняю форму:
ActiveRecord::Schema.define(version: 2019_06_05_024141) do
create_table "users", force: :cascade do |t|
t.string "name", null: false
t.string "username", null: false
t.datetime "birthday", null: false
t.string "relationship_status", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "email", default: "", 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 ["email"], name: "index_users_on_email", unique: true
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end
end
Как вы можете видеть на картинке, relationship_status
явно настроен на одиночный.Тем не менее, я продолжаю получать сообщение о том, что оно не может быть пустым.Я в тупике, и некоторая помощь будет оценена.Спасибо.