Я пытаюсь создать любимую кнопку, где пользователи смогут использовать кнопку-переключатель, чтобы «добавить в избранное» и «отменить» то же самое, в зависимости от того, что им нравится. До сих пор, если я «не одобряю» пост, он, кажется, работает, но всякий раз, когда я делаю иначе, ссылка не меняется. Я использовал 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)