我在控制器中有一个方法来检查数据库表中是否已存在电子邮件。 我需要在电子邮件文本框下面显示类似于图像的验证消息,而不是使用flash [:error] ="メール変更に失败しました!"。
验证在控制器中完成,我们在其中检查email-Id
控制器方法:
def update_email
@user_login = UserLogin.find(params[:id])
if @email_check = UserLogin.where(:email => params[:update_email]).first
redirect_to "/works?utf8=%E2%9C%93&search=&commit=%E6%A4%9C%E7%B4%A2", notice: params[:id] + 'idの メールは既に存在します!'
else
@update_email = UserLogin.where(:user_id => @user_login ).update_all(:email => params[:update_email])
if @update_email
UserLogin.where(:user_id => params[:id]).update_all(:updated_at => Time.zone.now)
flash[:success] = "メール変更!"
redirect_to works_path
else
flash[:error] = "メール変更に失敗しました!"
redirect_to works_path
end
end
end
index.html.erb:
<%= form_for :works,:id => "email_validate", :url => {:action => 'update_email',:id => userdetails.user_id} do %>
<td><%= email_field_tag :update_email,nil,:id =>"email",:class => "form-control" ,:placeholder =>'新しいメールアドレス。。。。', required: true %><br/></td>
<td><%= button_to("変更", {}, {:onclick => "return confirm('メールをリセットします。よろしいでしょうか?')", :class => "btn btn-primary", :method => :update_email, :remote => true}) %></td>
<% end %>
答案 0 :(得分:0)
In controller:
flash[:notice] = 'メールは既に存在します!!'
redirect_to works_path
In view:
<%= form_for :maintanance_works, :url => {:action => 'update_email',:id => userdetails.user_id} do %>
<td>
<%= email_field_tag :update_email, nil,:class => "form-control" ,:placeholder =>'新しいメールアドレス。。。。', required: true %><br/>
<p class="notice" style="color:red;font-size:12pt;">
<%= flash[:notice] %></p>
</td>
<td>
<%= button_to("変更", {}, {:onclick => "return confirm('メールをリセットします。よろしいでしょうか?')", :class => "btn btn-primary", :method => :update_email, :remote => true}) %></td>
<% end %>
**Display flash message below your textbox**