Неизвестное действие Не удалось найти действие 'show' для MicropostsController - PullRequest
0 голосов
/ 08 января 2012

Следуя учебному пособию Майкла Хартла по Rails, постоянно создающему наше примерное приложение, и в настоящее время не определено 'show' в MicropostsController, какой код мы должны вставить в MicropostsController или где-либо еще в нашей среде MVC, чтобы исправить эту ошибку?

Когда мы нажимаем «удалить» микросообщение в нашем фиде, мы получаем ошибку «Неизвестное действие. Не удалось найти действие« show »для MicropostsController».

class MicropostsController < ApplicationController
  before_filter :authenticate, :only => [:create, :destroy]

  def create
    @micropost = current_user.microposts.build(params[:micropost])
    if @micropost.save
      flash[:success] = "Micropost created!"
      redirect_to root_path
    else
      @feed_items = []
      render 'pages/home'
    end
  end

  def destroy
      @micropost.destroy
      redirect_back_or root_path
    end
 end

Ответы [ 2 ]

0 голосов
/ 11 апреля 2012

Это происходит потому, что либо JavaScript в вашем браузере отключен (например, через блок скриптов), либо, как уже писал SeasonHuang, jquery_ujs.js загружен неправильно. Если вы вызовете rake routes, вы увидите что-то вроде:

GET  /microposts/:id  Microposts#show
DELETE  /microposts/:id  Microposts#destroy

Так что путь показать и уничтожить один и тот же. Они отличаются по методу HTTP. Но поскольку HTML-формы не могут отправлять запросы DELETE, мы должны делать это с помощью JavaScrip. Без этого вы сделаете запрос GET, чтобы показать метод, который еще не определен в вашем контроллере.

0 голосов
/ 11 апреля 2012

Пожалуйста, подтвердите, что вы включили jquery_ujs.js. проверьте ваш application.js и убедитесь, что «// = require jquery_ujs» существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...