@rubylang

Страница 1100 из 1684
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
поставить 'jquery-rails'?
я бы даже сказал что он там изначально есть

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
yarn add jquery и в application.js (или где ещё) import {$,jQuery} from 'jquery'
хуюшки ReferenceError: $ is not defined home.self-bd61efb83bae309195ff252f0e836f121f9f9964f4022d88a1012abb3f440558.js:2:2 SyntaxError: modules are not implemented yet

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 ставил. Он как зависимоть подтянулся для пакетов

v
05.07.2017
10:44:43
вот

вебпак

Страница 1100 из 1684