2014-05-07 1 views
0

Я пытаюсь удалить комментарии, которые я создал, с действиями в качестве примечательного драгоценного камня.Как уничтожить комментарии в act_as_commentable_on gem?

Мой код:

<%= link_to "×", comment_delete_place_path(comment.id), :method => :delete, :remote => true, :confirm => "Are you sure you want to remove this comment?", :disable_with => "×", :class => 'close' %> 

Контроллер:

def comment_destroy 
    if params[:comment] 
     @comment = Comment.find(params[:id]) 
     if @comment.destroy 
     respond_to do |format| 
      format.html { redirect_to @place, notice: 'The comment was successfully deleted!'} 
      format.js 
     end 
    end 
    end 
end 

Маршруты:

delete 'places/comment/:id' => 'places#comment_destroy', as: 'comment_delete_place' 

Это не дает мне ошибку, но не удалить комментарий. Где я иду не так?

ответ

1

В удаленном запросе, нет comment параметра (только параметр id предусмотрен), так что следующая строка всегда false, вы можете удалить его:

if params[:comment] 
+0

Спасибо .. Я не заметил этого раньше :) –

1

link_to с помощью метода ничего, кроме GET, на самом деле плохой идеей, поскольку ссылки можно щелкнуть правой кнопкой мыши и открыть в новой вкладке/окне, а поскольку это просто копирует URL-адрес (а не метод), он будет разбит на не-ссылки. Кроме того, ссылки на них нажимают индексирующие веб-страницы пауки, и хотя эти ссылки, вероятно, доступны только для входа в систему (и, следовательно, не для пауков), или имеют «подтверждение», это все еще плохая практика.

Вместо этого лучше использовать button_to, что заставляет рельсы формировать форму для получения того же результата.

С практической точки зрения кнопки лучше (по вышеуказанным причинам), но они также лучше с концептуальной точки зрения: вообще говоря, ссылки должны «забирать вас куда-то», тогда как кнопки должны «что-то делать», , Лучше держать эти две основные функции отдельно.

Попробуйте button_to (вам нужно будет проверить синтаксис в вашем api). Если он все еще не работает, то проверьте URL в форме, и сравнить ее с выходом из rake routes | grep comment

+0

Благодарим за информацию. Технически вы абсолютно правы. Однако есть моменты, когда вам придется использовать ссылку. А также, в генерации эшафотов, не генерирует ли ссылка link_to для метода удаления? –

+0

Можете ли вы привести мне пример того, когда вы должны использовать link_to? Если эшафот делает link_to с методом удаления, то, по моему мнению, эшафот ошибочен. Это только мое мнение. –

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