Ошибка «Шаблон отсутствует» в Rails 3.1 при попытке рендеринга - PullRequest
1 голос
/ 03 ноября 2011

Я пытаюсь использовать 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.

В этом post рекомендуется удалить старый файл 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 Ответ

1 голос
/ 03 ноября 2011

Я считаю, что опция remote должна быть опцией для link_to, а не для edit_post_path.Попробуйте переместить его за скобки:

<%= link_to 'Edit', edit_post_path(post), remote: true %>
...