Я пытаюсь создать форму объекта в представлении «Индекс», все идет хорошо, но когда сохранение не удается (ошибка проверки), ошибки не будут отображаться на экране, как они должны.
Это мой контроллер ссылок
class LinksController < ApplicationController
respond_to :html
def index
@link = Link.new
@links = Link.all
end
def create
@link = Link.new(params[:link])
flash[:notice] = "Link was found successfully." if @link.save
respond_with(@link)
end
def show
respond_with(@link = Link.find(params[:id]))
end
def statistics
end
end
И это частичная форма, в которой должны отображаться ошибки
<h1>New Search</h1>
<%= form_for(@link) do |f| %>
<% if @link.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@link.errors.count, "error") %> prohibited this ticket from being saved:</h2>
<ul>
<% @link.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p><b><%= f.label(:original, "URL") %></b>
<%= f.text_field :original %></p>
<p><%= f.submit('Find Link') %></p>
<% end %>
Когда я создаю новый объект и оригинал действителен, все идет хорошо, но когда это не так, я получаю:
Шаблон отсутствует
Отсутствуют ссылки на шаблоны / новые с {: format => [: html],: locale => [: en,: en],: handlers => [: erb,: builder,: rjs,: rhtml,: rxml ]} в путях просмотра
Кажется, он запрашивает новое, когда он получает ошибки, но я хочу, чтобы он пошел в индекс и показал там ошибки. Я попытался ответить приведенным ниже фрагментом, но он тоже не сработал.
respond_with(@link) do |format|
format.html { render :action => 'index'}
end
Также мой index.html.erb, он загружает частичную форму, а недавний частичный ниже
<%= render 'form' %>
<%= render 'recent' %>
_recent.html.erb
<h1>Recent Finds</h1>
<table>
<tr>
<th>URL</th>
<th>Link</th>
<th>Service</th>
</tr>
<% @links.each do |link| %>
<tr>
<td><%= link.original %></td>
<td><%= link.link %></td>
<td><%= link.site %></td>
</tr>
<% end %>
</table>
Есть идеи о том, что я могу сделать здесь?