人材アンケートアプリ開発で、各人のパスワード設定をしますが、
管理者が特定の人材の情報を変更しようとしても、パスワードが要求されます。
例えば、下記の良いうに管理者だけが、imagを変更できるとして、変更したあと
passwordが聞かれます。パスワードは個人しかわからないので、どうしたら良いかわかりません。
個人は、逆にパスワードの変更のみできるようにしています。
ご教授いただけると幸いです。
ruby
1<%= form_with model: user, local: true do |f| %> 2 <% if current_user.admin==true %> 3 <div class="form-group mb-3"> 4 <%= f.label :name %> 5 <%= f.text_field :name, class:"form-control" %> 6 </div> 7 <div class="form-group mb-3"> 8 <%= f.label :image %> 9 <%= f.file_field :image, class:"form-control" %> 10 </div> 11 <% end %> 12 <% if current_user==user || @iconlabel=='new' %> 13 <div class="form-group mb-3"> 14 <%= f.label :password %> 15 <%= f.password_field :password, class:"form-control" %> 16 </div> 17 <div class="form-group mb-3"> 18 <%= f.label :password_confirmation %> 19 <%= f.password_field :password_confirmation, class:"form-control" %> 20 </div> 21 <% end %> 22 <div class="d-grid gap-2 d-md-flex justify-content-md-end mb-3"> 23 <%= f.submit nil, class:"btn btn-primary shadow" %> 24 </div> 25<% end %>
user.rb収載のご要望がありましたので下記に収載します。
なお、このご指摘で、# validates :password, presence: trueをコメントアウトすることで、
パスワードが要求されず変更することができるようになりました。
ただ、validatesの意味がよくわからなくなってきました。
アドバイスがあれば幸いです。
ruby
1class User < ApplicationRecord 2 has_secure_password 3 has_one_attached :image, dependent: :destroy 4 5 validates :name, presence: true 6 validates :email, presence: true, uniqueness:true 7 # validates :password, presence: true 8 9 scope :recent, -> { order(created_at: :desc) } 10 11 has_many :posts, dependent: :destroy 12 has_many :careers, dependent: :destroy 13 14 enum gender: { 男性: 1, 女性: 2} 15 16 def self.ransackable_attributes(auth_object = nil) 17 %w(name idnumber workplace gender admin retired created_at) 18 end 19 20 def self.ransackable_assosiations(auth_object = nil) 21 [] 22 end 23 24 def self.csv_attributes 25 ["idnumber", "name", "workplace", "email", "birth", "join_date", "gender", "retired", "admin", "root", "created_at", "updated_at", "HR"] 26 end 27 28 def self.generate_csv 29 CSV.generate(headers:true, encoding: Encoding::SJIS, row_sep: "\r\n", force_quotes: true) do |csv| 30 csv << csv_attributes 31 all.each do |user| 32 csv << csv_attributes.map{|attr| user.send(attr)} 33 end 34 end 35 end 36 37end
回答1件
あなたの回答
tips
プレビュー