1

Я пытаюсь использовать Ajax с моим CRUD. Я следую за этим tutorial.Ошибка «Шаблон отсутствует» в Rails 3.1 при попытке визуализации

Я вижу эту ошибку:

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, расположенный в приложение/просмотров/сообщений/edit.js.erb. Этот файл не используется для ответа. Рассматривая приведенное выше сообщение об ошибке, значение: format key - это массив, который содержит только: 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

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

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

Удивительно, спасибо за помощь Дилана. Это решает проблему. Вы можете проверить код в [my github] (https://github.com/wangstabill/100--Ajax-CRUD--Rails-3.1)! Спасибо! –

+0

Прохладный! Обязательно принимайте ответ, если он вам поможет, иначе люди не будут тратить время на ответы на ваши вопросы в будущем. –

Смежные вопросы