Ошибка "Шаблон отсутствует" в Rails 3.1 при попытке рендеринга
Я пытаюсь использовать Ajax с моим CRUD. Я следую этому уроку.
Я вижу эту ошибку:
Missing template posts/edit, application/edit with {:handlers=>[:erb, :builder, :coffee], :formats=>[:html], :locale=>[:en, :en]}. Searched in: * "/Users/wangstabill/Code/rails/ajax_on_rails/app/views"
когда я пытаюсь нажать на ссылку изменить. Это выглядит как:
<%= link_to 'Edit', edit_post_path(post, remote: true) %>
Теперь у меня есть простой файл js.erb, расположенный в app/views/posts/edit.js.erb. Этот файл не используется для ответа. Глядя на приведенное выше сообщение об ошибке, ключом: форматов является массив, содержащий только: html. Если я создаю edit.html.js, это работает нормально, но не файл edit.js.erb.
В этом посте рекомендуется удалить старый файл rails.js, но я совершенно уверен, что никогда не включал его в это простое приложение (или где его найти, если я это сделал).
Вот как выглядит мой класс контроллера:
class PostsController < ApplicationController
before_filter :load, :except => [:destroy, :create]
def load
@posts = Post.all
end
def index
@post = Post.new
end
def edit
@post = Post.find(params[:id])
end
def create
@post = Post.new(params[:post])
if @post.save
flash[:notice] = 'Post was successfully created.'
load
end
end
def update
@post = Post.find(params[:id])
if @post.update_attributes(params[:post])
flash[:notice] = 'Post was successfully updated.'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
flash[:notice] = 'Successfully destroyed post.'
load
end
end
Я не понимаю, почему мои действия по созданию и уничтожению успешно отвечают шаблонами js.erb, но не редактируют. Спасибо за любую помощь!
1 ответ
Я верю remote
опция должна быть опцией для link_to
, не для edit_post_path
, Попробуйте переместить его за скобки:
<%= link_to 'Edit', edit_post_path(post), remote: true %>