
Nikita
05.07.2017
09:47:51
поэтому по всей видимости такая беда, какой самый оптимальный вариант?

Fedor
05.07.2017
09:48:17
ниче не понял
ты вполне можешь передать массив в параметрах
у тебя есть "state"=>"alabama", но при этом ошибка missing required keys: [:state]

Google

Fedor
05.07.2017
09:49:03
это потому, что "state" != :state
[8] pry(main)> h = ActiveSupport::HashWithIndifferentAccess.new({a: 123})
=> {"a"=>123}
[9] pry(main)> h['a']
=> 123
[10] pry(main)> h[:a]
=> 123
вот эта штука может проблему решить

Nikita
05.07.2017
09:50:37
movers/new york/bronx?utf8=✓&names[]=360&names[]=485&commit=Search
фильтр идет

Fedor
05.07.2017
09:50:46
Что бы не было такого:
[11] pry(main)> h = {a: 123}
=> {:a=>123}
[12] pry(main)> h[:a]
=> 123
[13] pry(main)> h['a']
=> nil
Или такого:
[14] pry(main)> h = {'a' => 123}
=> {"a"=>123}
[15] pry(main)> h['a']
=> 123
[16] pry(main)> h[:a]
=> nil
если у тебя strong_params фильтрует массив, то просто сделать permit(names: [])

Nikita
05.07.2017
09:51:28
@FedorKoshel merge, а state прогонять через метод?
ну params.merge(your_method({ state: 'value'? }))

Fedor
05.07.2017
09:52:16
merge - объединяет хэши, в params лежат все старые параметры в merge ты добавляешь все, что хочешь добавить к этому хэшу перед отправкой
и потом все это отправляешь

Nikita
05.07.2017
09:52:27
я это понимаю, мне так и нужно

Fedor
05.07.2017
09:53:06
ааа, ты про HashWithIndifferentAccess?

Google

Fedor
05.07.2017
09:53:24
скорее params = HashWithIndifferentAccess.new(params)
а потом с ним работать
или
mover_cities_path(ActiveSupport::HashWithIndifferentAccess.new(params).merge(state: key.to_s.downcase))

Nikita
05.07.2017
09:54:45
щас попробую

ojab
05.07.2017
09:55:21
во-первых надо в ActionController::Parameters.new превращать, во-вторых params уже должны быть ActionController::Parameters и при #merge класс меняться не должен.
В params передаётся controller/action/etc, которые передаваться не должны. Параметры из url кладутся в какой-то ключ (прозреваю mover), так что тебе нужно делать что-то в духе params.require(:mover).merge(state: key.to_s.downcase)

Nikita
05.07.2017
09:56:09
ojab так не mover, короче суть такая, что есть фильтр на странице штатов, городов и города
фильтруется непосредственно в самом экшоне через модель
и далее мне нужно эти параметры для фильтра передавать при переходу, допустим в какой-то штат
а из штата уже в город непосредственно
но когда я делаю просто переход - понятное дело, что параметры не передаются
тоесть грубо говоря
/movers/
/movers/alabama/
/movers/alabama/birmingham
и на каждой странице там немного по своему фильтрует
есть свои особенности, скажем так, на рендер

ojab
05.07.2017
09:58:07
не суть, значит делай .permit того что нужно передать

Nikita
05.07.2017
09:58:07
и вот мне нужно, чтобы эти параметры передавались, соответственно
params.permit(:names, :services).merge(state: key.to_s.downcase)
что-то в таком ключе?

ojab
05.07.2017
09:59:53
ага

Nikita
05.07.2017
10:00:03
но та же ошибка)

Google

Nikita
05.07.2017
10:00:30
No route matches {:action=>"mover_cities", :controller=>"movers", "state"=>"alabama"} missing required keys: [:state]
почему то state берет как строку, а не как хеш

ojab
05.07.2017
10:01:37
а, так тебе его не в params надо передавать

Nikita
05.07.2017
10:02:25
ну да, вот я и спрашиваю, как это все дело объеденить

ojab
05.07.2017
10:02:35
_path helper'ы принимают значения напрямую

Nikita
05.07.2017
10:02:48
а где про них посмотреть можно?
я просто до этого с таким не стакивался
поэтому не знаю, как правильно сделать
я бы вообще резузьтат поиска вывел на отдельную страницу и это бы было ок, но нужно вот так
вот нужно как-то это все до ума довести

ojab
05.07.2017
10:06:18
вообще mover_cities_path(state: 'state'), но документацию я что-то не нахожу

Nikita
05.07.2017
10:06:40
можно сделать мб вообще проще

Nikita
05.07.2017
10:06:54
mover_cities_path(state: 'state', names: params[:names]) ?
или так не пойдет?

Fedor
05.07.2017
10:08:13
пойдет

Nikita
05.07.2017
10:08:17
щас тестану

ojab
05.07.2017
10:08:28
http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html -> "URL generation for named routes"
_path это обёртка над UrlFor

Nikita
05.07.2017
10:12:00
ojab короче просто руками передаю параметры и все
типа так

Google

Nikita
05.07.2017
10:12:20
mover_cities_path(state: key.to_s.downcase, names: params[:names], services: params[:services])
mover_city_path(city: key.to_s.downcase, names: params[:names], services: params[:services])

Denis
05.07.2017
10:13:38
Как в LIKE реализовать поиск независимо от того как ты ищешь через - или без
пресс-подборщик или пресс подборщика чтобы в итоге все равно нашло

Fedor
05.07.2017
10:18:27
https://www.w3schools.com/sql/sql_wildcards.asp

v
05.07.2017
10:18:57
господа
простой вопрос
КАК ДОБАВИТЬ JQUERY В РЕЛЬСЫ 5.1?

Klim
05.07.2017
10:20:16
думаю Ярном

ojab
05.07.2017
10:20:47
поставить 'jquery-rails'?

Klim
05.07.2017
10:21:22
https://stackoverflow.com/questions/43697023/how-to-use-rails-5-1-0-and-jquery

Admin
ERROR: S client not available

Fedor
05.07.2017
10:21:22

ojab
05.07.2017
10:21:32
нет

Fedor
05.07.2017
10:21:34
или мне так кажется, и я его воткнул на автомате и забыл )

ojab
05.07.2017
10:21:50
там rails-ujs из коробки
since https://github.com/rails/rails/pull/27113

Nikita
05.07.2017
10:23:17
а теперь еще вопрос
почему капибара параметры не передает?
visit mover_cities_path(state: movers.last.state, services: [services.last.id])
то есть просто получается путь: "/movers/Wisconsin"

Google

Nikita
05.07.2017
10:24:04
а должен быть с параметрами services[]=123

v
05.07.2017
10:28:55
типа, yarn add jquery И все вот это

ojab
05.07.2017
10:30:05
а, с yarn
yarn add jquery и в application.js (или где ещё) import {$,jQuery} from 'jquery'

v
05.07.2017
10:31:08
импорт
блить

ojab
05.07.2017
10:31:28
вообще всё что используешь в скрипте надо импортировать

v
05.07.2017
10:31:59
ну какбэ первые страницы выдачи гугла говрят про require

Klim
05.07.2017
10:32:01
На СО хороший ответ.

v
05.07.2017
10:32:15

Nikita
05.07.2017
10:37:37
ojab нет идей, почему капибара не так ведет себя?

v
05.07.2017
10:40:44

Denis
05.07.2017
10:41:25
подключал jqury через yarn
//= require jquery
и все

v
05.07.2017
10:43:11
и все
угу. А jquery-rails у тебя в гемфайле случаем не присутствует?

Denis
05.07.2017
10:43:44
нет

v
05.07.2017
10:44:05
что-то ты недоговариваешь

Denis
05.07.2017
10:44:21
Я и jquery явно не указывал чтобы yarn ставил. Он как зависимоть подтянулся для пакетов

ojab
05.07.2017
10:44:30

v
05.07.2017
10:44:43
вот
вебпак