Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 November 25

IP

Igor Pavlov in Ruby, Rails, Hanami | dry-rb
хоть что-то полезное
источник

IP

Igor Pavlov in Ruby, Rails, Hanami | dry-rb
можно расходиться
источник

СН

Смерть Неизбежна... in Ruby, Rails, Hanami | dry-rb
Юр, у тебя как дела?
источник

СН

Смерть Неизбежна... in Ruby, Rails, Hanami | dry-rb
Тоже неплохо. Тебе не кажется, что этот чат немного про другое?
источник

СН

Смерть Неизбежна... in Ruby, Rails, Hanami | dry-rb
А зачем ты тогда это сюда несешь?
источник

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
Привет! Помогите, пожалуйста, с запросом searchkick. В search_data есть массив user_ids. Надо вернуть посты только в том случае, если id текущего юзера есть в этом массиве. При чем отдельно от остальных условий на соответствие полей тексту запроса params[:term]
Примерно так, только этот пример не работает)
Post.search(params[:term] || "*", 
 where: { deleted: false,
user_ids: current_user.id } )
elasticsearch 7.9, rails 5
источник

MK

Mihail Kolebaev in Ruby, Rails, Hanami | dry-rb
Xenial Xerus
Привет! Помогите, пожалуйста, с запросом searchkick. В search_data есть массив user_ids. Надо вернуть посты только в том случае, если id текущего юзера есть в этом массиве. При чем отдельно от остальных условий на соответствие полей тексту запроса params[:term]
Примерно так, только этот пример не работает)
Post.search(params[:term] || "*", 
 where: { deleted: false,
user_ids: current_user.id } )
elasticsearch 7.9, rails 5
if params[:user_ids].include?(current_user.id)
источник

AP

Alexey Poimtsev in Ruby, Rails, Hanami | dry-rb
чят, я тут шаблоны запилил, чтобы бутстрапить проекты, что-то еще полезное стоит добавить? https://github.com/alec-c4/kickstart
источник

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
Mihail Kolebaev
if params[:user_ids].include?(current_user.id)
я не понимаю, у searchkick result есть params? Т.е. сначала сделать фильтрацию, а потом проверить есть ли юзер?
источник

MK

Mihail Kolebaev in Ruby, Rails, Hanami | dry-rb
Xenial Xerus
я не понимаю, у searchkick result есть params? Т.е. сначала сделать фильтрацию, а потом проверить есть ли юзер?
Ну searchdata[:user_ids], айдишники с юзерами откуда берутся?
источник

AK

Aleksey Kuznietsov in Ruby, Rails, Hanami | dry-rb
Xenial Xerus
Привет! Помогите, пожалуйста, с запросом searchkick. В search_data есть массив user_ids. Надо вернуть посты только в том случае, если id текущего юзера есть в этом массиве. При чем отдельно от остальных условий на соответствие полей тексту запроса params[:term]
Примерно так, только этот пример не работает)
Post.search(params[:term] || "*", 
 where: { deleted: false,
user_ids: current_user.id } )
elasticsearch 7.9, rails 5
что значит “При чем отдельно от остальных условий на соответствие полей тексту запроса params[:term]”?
источник

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
Post.search(params[:term] || "*",
       where: { deleted: params[:deleted] || false,
user_ids: current_user.id
},
       misspellings: {
         below: 5,
         edit_distance: 2
       },
       order: order,
       fields: [{title: :word_start},
                { tags: :word_start}
                'title^5'],
       load: false,
       limit: params[:page_size] || 20)
источник

AK

Aleksey Kuznietsov in Ruby, Rails, Hanami | dry-rb
запрос выглядит семантически правильно, он вернет посты, которые одновременно удовлетворяют условиям:
-  содержат params[:term] в searchable полях
- аттрибут deleted равен false
- в user_ids один из ID равен current_user.id
источник

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
не работает так, может можно как-то в fields добавить условие с юзером?
источник
2020 November 26

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
в контроллере:
@posts = Post.search(params[:term] || "*", where: {
       owner_id: current_user.id,
       deleted: params[:deleted] || false,
       _or: {
         'editors.id' => current_user.id,
         deleted: params[:deleted] || false
       }},
       order: order,
       fields: [{title: :word_start},
                { tags: :word_start},
                'title^5'])

в модели:
searchkick(mappings: { properties: {
                          editors: { type: "nested" }...,
источник

XX

Xenial Xerus in Ruby, Rails, Hanami | dry-rb
заработало, хоть и не красиво, что deleted условие повторяется, но через and выдавало ошибку undefined method map for nil
источник

AK

Aleksey Kuznietsov in Ruby, Rails, Hanami | dry-rb
Xenial Xerus
в контроллере:
@posts = Post.search(params[:term] || "*", where: {
       owner_id: current_user.id,
       deleted: params[:deleted] || false,
       _or: {
         'editors.id' => current_user.id,
         deleted: params[:deleted] || false
       }},
       order: order,
       fields: [{title: :word_start},
                { tags: :word_start},
                'title^5'])

в модели:
searchkick(mappings: { properties: {
                          editors: { type: "nested" }...,
Было user_ids, стало editors?

Nested довольно дорогое удовольствие, индекс увеличится минимум в 2 раза и тем хуже чем больше эдиторов бывает в одном посте
источник

AK

Aleksey Kuznietsov in Ruby, Rails, Hanami | dry-rb
Тем более надобности в нестед я тут не вижу, обычное поле должно работать.

Почитайте как под капотом устроен nested тип в эластике.
источник

S

Skoomer in Ruby, Rails, Hanami | dry-rb
подскажите как решить эту канитель ? метод выводит фразу но codecademy  не пропкскает задачу  а вот и условие Create a method, greeter, that takes no arguments and yields to a block.

Create a Proc, phrase, that puts "Hello there!". Pass this to greeter instead of a block. (Don’t forget to pass &phrase instead of just phrase!)
источник

AK

Aleksey Kuznietsov in Ruby, Rails, Hanami | dry-rb
Может puts в прок перенести?
источник