Ruby on rails переключает любимую кнопку с помощью jquery, а ajax поставляется с «рендерингом head: no_content Completed 204 No Content» Ошибка - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь создать любимую кнопку, где пользователи смогут использовать кнопку-переключатель, чтобы «добавить в избранное» и «отменить» то же самое, в зависимости от того, что им нравится. До сих пор, если я «не одобряю» пост, он, кажется, работает, но всякий раз, когда я делаю иначе, ссылка не меняется. Я использовал jquery и ajax.

class FavouritesController < ApplicationController
  before_action :authenticate_user!

  def create
    @favourite = current_user.favourites.build(favourite_params)
    if @favourite.save
      @post = @favourite.post
      respond_to :js
    else
      flash[:alert] = "something went wrong..."
    end
  end

  def destroy
    @favourite = Favourite.find(params[:id])
    @school = @favourite.post
    if @favourite.destroy
      respond_to :js
    else
      flash[:alert] = "Something Went Wrong..."
    end
  end

  private

  def favourite_params
    params.permit :user_id, :post_id
  end
end

ЗДЕСЬ МОДЕЛИ

class Post < ApplicationRecord
  belongs_to :user
  has_many :favourites

  def is_favourited user
    Favourite.find_by(user_id: user.id, post_id: id)
  end
end

ЛЮБИМАЯ МОДЕЛЬ

class Favourite < ApplicationRecord
  belongs_to :user
  belongs_to :post
end

СОЗДАН J.S В ПАКЕТЕ ИЗБРАННОГО ВИДА I.E: views / favourites / creat.js.erb

$('#favourite').html('<%= j render "posts/favourite", {is_favourited: 
@is_favourited, post: @post} %>');
console.log("Added to your favourite List");

СОЗДАН J.S В ПАКЕТЕ ИЗБРАННОГО ВИДА I.E: просмотры / избранное / destroy.js.erb /destroy.js.erb

$('#favourite').html('<%= j render "posts/favourite", {is_favourited: 
@is_favourited, post: @post} %>');
console.log("Added to your favourite List");

ЛЮБИМЫЙ ЧАСТИЧНЫЙ ФАЙЛ В ПАПКАХ ПОСМОТРЕТЬ IE ОБЗОРЫ / POSTS / _favourite.html.erb

НА ШОУ-СТРАНИЦЕ ПОЧТЫ Я ОТПРАВИЛ ЧАСТИЧНО, КАК ЭТОТ

<%= render 'favourite' %>

ЗДЕСЬ ЧТО Я ПОЛУЧУ НА КОНСОЛЕ

No template found for FavouritesController#create, rendering head 
:no_content Completed 204 No Content in 14084ms (ActiveRecord: 318.1ms)

1 Ответ

0 голосов
/ 30 июня 2019

Ваш метод create не имеет представления.
Если вы не хотите что-то отвечать, вы можете добавить head :ok в конце метода, чтобы избежать сообщения «204».

Вы также можете использовать head :created, если хотите ответить «201 Создано»

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