新しいガイドラインを送信しようとすると、フォームにエラー メッセージが表示されます (ガイドラインが正しく検証に失敗したため)... @specialties のリストが正しくリロードされません (つまり、エラーで送信する前に表示された適切なリスト)。ここではどの部分が間違っているのかわかりません...
ビュー _form.html.erb
<%= simple_form_for(@guideline, html: {class: "form-horizontal"}) do |f| %>
<% if @guideline.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@guideline.errors.count, "error") %> prohibited this guideline from being saved:</h2>
<ul>
<% @guideline.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.input :title, label: 'Title (e.g. Asthma for under 12 months)' %>
<%= f.input :specialty, as: :select, collection: @specialties %>
<%= f.input :hospital %>
<%= f.input :content, as: :string, label: 'Link' %>
<div class="form-actions">
<%= f.button :submit, :class => "btn btn-info btn-large" %>
</div>
<% end %>
ガイドライン_コントローラー.rb
def new
@guideline = Guideline.new
@specialties = Guideline.order(:specialty).uniq.pluck(:specialty)
respond_to do |format|
format.html # new.html.erb
format.json { render json: @guideline }
end
end
def create
@guideline = current_user.guidelines.new(params[:guideline])
respond_to do |format|
if @guideline.save
format.html { redirect_to @guideline, notice: 'Guideline was successfully created.' }
format.json { render json: @guideline, status: :created, location: @guideline }
else
@specialties = Guideline.order(:specialty).uniq.pluck(:specialty)
format.html { render action: "new" }
format.json { render json: @guideline.errors, status: :unprocessable_entity }
end
end
終わり