0
検索フォームを作成しようとしています。それはif
を持っています。レコードが存在するかどうかだけをトリガーしたいと思います。しかし、レコードが存在しなくても実行されるため、正しくトリガされません。名前が存在しない場合、コードのelse
部分のコードを実行する代わりに、メソッドがnilであるというエラーがスローされます。これをどうすれば解決できますか?検索フォームとredirect_to
<div class = "container">
<div class = "row"></div>
<%= form_tag(doctors_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "please enter your name" %>
<%= submit_tag "Search", :name => nil %>
<br>
<div>
<% if @doctors.exists?(name: params[:search])%>
<%= @list_patients.each do |patient| %>
<p>Appointment for patient <strong><%= patient.name %></strong></p>
<hr>
<br>
<% end %>
<% else %>
<h5>your name is not on our database, please regsitry <%= params[:search] %>.</h5>
<% end %>
</div>
<% end %>
</div>
</div>
これは、コントローラ
def index
@doctors = Doctor.all
if params[:search]
@doctors_exists = Doctor.where("name like ? ", params[:search]).all
@list_patients = Doctor.find_by(name: params[:search]).patients.order('created_at DESC')
else
@posts = Doctor.all.order('created_at DESC')
end
end
何らかの理由で名前が ""(空)のユーザーがいますか。 params [:search]も常に存在しますか? – sahil
'@ doctors'を割り当てたコントローラコードを投稿できますか? – soupdog
エラーを表示する必要があります –