1

CRUD で Ajax を使用しようとしています。私はこのチュートリアルに従っています。

次のエラーが表示されます。

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 に配置されました。このファイルは応答には使用されません。上記のエラー メッセージを見ると、:formats キーの値は、: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

create および destroy アクションが js.erb テンプレートでは正常に応答しているのに、edit では応答しない理由がわかりません。助けてくれてありがとう!

4

1 に答える 1

1

オプションは、ではなく、のremoteオプションである必要があると思います。括弧の外に移動してみてください。link_toedit_post_path

<%= link_to 'Edit', edit_post_path(post), remote: true %>
于 2011-11-03T16:02:48.483 に答える