2014-10-23 5 views
1

В настоящее время я использую методы response_with и reply_to. Мой файл управления выглядит следующим образом:response_with Неопределенный метод

class CommentsController < ApplicationController 
    respond_to :html, :js 

    def create 
    @post = Post.find(params[:post_id]) 
    @comment = current_user.comments.build(comment_params) 
    @comment.post = @post 
    @comment.user = current_user 
    authorize @post 
    if @comment.save 
     flash[:notice] = "Comment was saved." 
     redirect_to [@post.topic, @post] 
    else 
     flash[:error] = "There was an error saving the comment. Please try again." 
     redirect_to [@post.topic, @post] 
    end 
    end 

    def destroy 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.find(params[:id]) 

    authorize @comment 
    if @comment.destroy 
     flash[:notice] = "Comment was removed." 
    else 
     flash[:error] = "Comment couldn't be deleted. Try again." 
    end 
    end 

    respond_with(@comment) do |format| 
    format.html { redirect_to [post.topic, @post] } 
    end 

private 

    def comment_params 
    params.require(:comment).permit(:body) 
    end 
end 

Я получаю сообщение об ошибке, «RoutingError: Неопределенный метод respond_with».

У меня googled «response_with», и в Rails Guides говорится, что мне нужен драгоценный камень, называемый «респонденты», что имеет смысл. Когда я пытаюсь это добавить, я сталкиваюсь с проблемами; по-видимому, «респондентам» нужен еще один драгоценный камень, «рельсы», для которых рельсы требуют другой версии этого драгоценного камня. Мои рельсы прекрасно работали без «рейндов», по крайней мере до сих пор.

Кто-нибудь знает, действительно ли мне нужны «респонденты», или что еще может вызвать мое сообщение об ошибке, или какую версию «railties» я должен установить, если таковая имеется?

Спасибо!

+0

Драгоценный камень респондентов предназначен только для Rails 4.x, в какой версии Rails вы используете? –

+0

Я использую рельсы 4.0.9. –

+0

Тогда я не знаю, почему он жалуется на драгоценные камни, вы, вероятно, с тем или иным человеком, заблокированным в определенной версии вашего Gemfile.lock. –

ответ

2

Попробуйте переместить код respond_with... в код destroy.

+0

Кажется, что это сработало, без драгоценных камней! Спасибо, Элиот. –

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