Приложение Ruby on Rails: ошибка ElasticSearch "type" => "cluster_block_exception" - PullRequest
0 голосов
/ 03 октября 2018
{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"} on item with id '2'

Это ошибка, которую я получаю.Что я сделал:

rails db:drop db:create db:migrate
rails c and Model.reindex (failed)

Ошибка:

  [1] pry(main)> Post.reindex
  Post Load (0.4ms)  SELECT  "posts".* FROM "posts" ORDER BY "posts"."id" ASC 
  LIMIT $1  [["LIMIT", 1000]]
  Post Import (137.9ms)  {"count":1,"id":1}
  Elasticsearch::Transport::Transport::Errors::Forbidden: [403] {"error": 
  {"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: 
  [FORBIDDEN/12/index read-only / allow delete 
  (api)];"}],"type":"cluster_block_exception","reason":"blocked by: 
  [FORBIDDEN/12/index read-only / allow delete (api)];"},"status":403}
  from 
  /Users/CHAFET/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/elasticsearch- 
  transport-6.1.0/lib/elasticsearch/transport/transport/base.rb:205:in 
  `__raise_transport_error'

Затем я снова зашел в консоль rails и запустил 'Post.search_index.delete'

  Post Import (99.1ms)  {"count":1,"id":1}
  => true

Затем я попытался снова перейти к моей модели 'show' или 'save', и это выдает мне ошибку поверх этого повествования:

{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index 
read-only / allow delete (api)];"} on item with id '2'
  • Когда я нажимаю 'Create Post', это даетмне ошибка
  • Обратите внимание, что если я нажму 'назад', 'Пост' будет создан

Это мой контроллер почты:

class PostsController < ApplicationController
    before_action :set_post, only: [ :edit, :update, :destroy, :show]
    skip_before_action :authenticate_user!

    def index
      if params[:query]
        @posts = Post.search(params[:query])
      else
        @posts = Post.all
      end
        @top_post = Post.order(view: :desc).first
        @popular_posts = Post.order(view: :desc).first(4) - [@top_post]
    end

    def new
      @post = Post.new
    end

    def create
      @post = Post.new(post_params)
      @post.view = 0
      @post.user = current_user
      if @post.save
        redirect_to dashboard_path
      else
        render :new
      end
    end

    def show
        @popular_posts = Post.order(view: :desc).first(4) - [@top_post]
        @post.view += 1
        @post.save
    end

    def dashboard
        @posts = Post.all
    end

    def edit
    end

    def update
      @post.update(post_params)
      redirect_to post_path
   end

    def destroy
      @post.destroy
      redirect_to dashboard_path
    end

    private

    def set_post
      @post = Post.find(params[:id])
    end

    def post_params
      params.require(:post).permit(:title, :content, :photo)
    end
end

1 Ответ

0 голосов
/ 12 февраля 2019

Попробуйте это решение здесь https://stackoverflow.com/a/50609418/3573300 Я столкнулся с подобной ситуацией, потому что у меня больше не осталось места на моем кластере

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