登録フォームを作成するためのカスタムフィールドを追加しました:ラジオボタンとリストの選択は、データの検証中にエラーが発生した場合(たとえば、私は登録フォームにリダイレクトされ、カスタムフィールドはデータを失います。 の例では、これらの2枚の絵で説明されています。レールでセッションを使用して送信した後にデータフォームを保存する
のように二つの絵には、ユーザが値を選択するために、再びラジオボタンをクリックする必要があり、通常はそれはしてセッションに保存する必要があります考案する。
new.html.erb
<h2>Sign up</h2>
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :user_type, as: :radio_buttons, collection: %w(personnal professional), checked: 'personnal' %>
<%= f.input :name, required: true %>
<%= f.input :city,as: :select,required: true,%>
<%= f.input :email, required: true %>
<%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %>
<%= f.input :password_confirmation, required: true %>
</div>
<div class="form-actions">
<%= f.button :submit, "Sign up" %>
</div> <% end %>
<%= render "devise/shared/links" %>
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name,:city,:user_type,:phone])
end
end
User.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
私はここにStackOverflowでの解決策を見つけたが、私はそれを作るcoudn't私はすでにコントローラを作成しましたが、解決策は私のために働きません。 Keep form fields filled after an error (RoR)
関連コード、コントローラー/ビューなどを投稿してください – 31piy
@ 31piy問題に関連するコードを掲載しました。私は何を追加するのか分からないので、私はコードを追加しませんでした。 – zbakh