Итак, я установил gem act_as_votable или как он там называется. Отличная маленькая система голосования. Однако в моем администраторе, когда я иду, чтобы удалить сообщение в блоге, я получаю сообщение об ошибке ограничения внешнего ключа с sqlite. Я знаю, что это связано с таблицами БД, где, если вы попытаетесь удалить запись в одной таблице, которая имеет внешний ключ в другой таблице, это вызывает проблему, если on_delete:: cascade не определен для внешнего ключа и т. Д. не знаю, как я могу это сделать для гема act_as_votable. Кто-нибудь знает? Спасибо!
модель блога:
class HomeBlog < ApplicationRecord
mount_uploader :image, ImageUploader
has_many :hashtaggings
has_many :hashtags, through: :hashtaggings
acts_as_votable
def all_hashes=(names)
self.hashtags = names.split(",").map do |name|
Hashtag.where(name: name.strip).first_or_create!
end
end
def all_hashes
self.hashtags.map(&:name).join(", ")
end
end
контроллер блога:
class Admin::HomeBlogsController < Admin::AdminController
before_action :set_home_blog, only: [:show, :destroy]
def destroy
@admin_home_blog.destroy!
respond_to do |format|
format.html { redirect_to admin_home_blogs_path, notice: 'Blog post was successfully deleted.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_home_blog
@admin_home_blog = Admin::HomeBlog.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def admin_home_blog_params
params.require(:home_blog).permit(:name, :entry, :image, :all_hashes)
end
end
Просмотр страницы:
<h3 id="blog-index-title">Blog Posts</h3>
<span class="pagination"><%= will_paginate @admin_home_blogs %></span>
<% @admin_home_blogs.each do |h| %>
<div id="admin-blog-index">
<%= link_to h.name, h %> | <button type="button"><%= link_to "delete", admin_home_blog_path(h), :style=>'color:white', method: :delete, data: {confirm: "Are you sure?"}%></button>
</div><br />
<% end %>
Сообщение об ошибке:
SQLite3 :: ConstraintException: сбой ограничения FOREIGN KEY: УДАЛИТЬ ИЗ "home_blogs" ГДЕ "home_blogs". "Id" =?