
Sergey
28.09.2016
15:43:34
парни, вопрос по гиту: в мастер коммитили много всего, я на своей ветке делал некоторые изменения, но за это время - файлы в которые я менял код - в мастер ветке перенесли в другие папки - как лучше мне слиться? сначала на моей ветке переложить файлы в новое место? а зтем когда по структуре буду совпадать сливать уже код ?

Eugene
28.09.2016
15:49:10
git rebase origin/master

Sergey
28.09.2016
15:51:06
я бы сначала с локальной веткой мастер смержился, а потом если все ок, то щапушил бы на сервер
все равно думаешь rebase использовать ?

Google

Sergey
28.09.2016
15:52:04
rebase он же заменяет коммиты, историю чище делает, он как то проверяет структуру папок?

Eugene
28.09.2016
15:52:07
короч обновляешь локальный мастер
потом ребейзишься от него
там у тебя если будут конфликты, ты их решаешь

Sergey
28.09.2016
15:53:41
правильно ли я понимаю, что гит не посчитает за конфликт, что файл которые я писал - теперь находится вд ругом месте и там где он у меня лежит - а на мастере его нет

Eugene
28.09.2016
15:54:05
ароде не должен

Sergey
28.09.2016
15:54:20
думаю, я понял что мне надо бранч смержить в локал и там уже смотреть структуру файлов) поправить ее и там уже ребейзить) лады)
спасибо за conversation :D

Rustam
28.09.2016
15:56:11
А кто нибудь вот это юзал для статики?
https://gohugo.io/
Вроде по скорости быстрее джекила и мидлмана

Andrey
28.09.2016
15:59:47
вероятно в require можно только 1 параметр передать

Ivan
28.09.2016
16:00:36

Alexandr
28.09.2016
16:00:40

Google

Ivan
28.09.2016
16:01:08
Это статика, там может быть скорость только в генерации сайта, которая нафиг не нужна. Пусть хоть минуту генерирует.)

Vitaliy
28.09.2016
16:27:05
pswrd ведь должен быть в permit по идее? это ведь поле?

Alexandr
28.09.2016
16:27:53

Artem
28.09.2016
16:38:09
там ведь все написано -params.require только один аргумент принимает, ты два передаешь

Alexandr
28.09.2016
16:39:00
А если теперь он ругается на "param is missing or the value is empty: mailname", но при этом сам в ошибке показывает, что в params есть "mailname"=>"testtestmail", то как его туда носом потыкать?

Ivan
28.09.2016
16:45:35
покажи ошибку полностью
у тебя param - email

Artem
28.09.2016
16:47:44
в документации же все есть :)

Ivan
28.09.2016
16:49:04
да он что-то с формой наделал

Alexandr
28.09.2016
16:49:10
Ну, я, обычно, если в документации что-то не нахожу - тогда обращаюсь. Правда, поскольку с этим сижу уже несколько часов, от документации крыша едет. Сложно становиться программистом :)

Ivan
28.09.2016
16:49:39
Форму покажи

Alexandr
28.09.2016
16:49:46
Форму покажи
<%= form_for(@email, url: {action: "create"}, html: { multipart: true }) do |f| %>
<%= f.label 'Название ящика (до "@")' %>
<%= f.text_field :mailname %>
<%= f.label 'Пароль' %>
<%= f.text_field :pswrd %>
<%= f.label 'Имя' %>
<%= f.text_field :iname %>
<%= f.label 'Фамилия' %>
<%= f.text_field :fname %>
<%= f.label 'Секретный вопрос' %>
<%= f.text_field :hintq %>
<%= f.label 'Сверхсекретный ответ' %>
<%= f.text_field :hinta %>
<%= f.label 'Пол' %>
<%= f.text_field :sex %>
<%= f.submit(@email.new_record? ? 'Добавить' : 'Сохранить', class: "btn btn-success") %>

Ivan
28.09.2016
16:50:34
Так и почему ты require(mailname) пишешь?
Скажу так, прочитай про strong_params, и про протокол http, как оно там работает

Alexandr
28.09.2016
16:51:03

Ivan
28.09.2016
16:51:24
И в урл так лучше не писать

Alexandr
28.09.2016
16:51:44
А как лучше писать?

Ivan
28.09.2016
16:51:51
form_for @email, url: email_path, method: :post do

Artem
28.09.2016
16:51:51
@Megashurik params.require(:something) ожидает, что в params будет ключ :something. У тебя ключ вложен в другой хэш, соответственно из-за этого экспешн

Google

Alexandr
28.09.2016
16:52:41

Ivan
28.09.2016
16:52:46
И там уже params.require(:email).permit(:mailname, etc.)
Да. Видишь на странице ошибки "parametrs", всё что не вложено - это .require
а всё, что вложено, это .permit, к родительскому .require

Artem
28.09.2016
16:55:01
если понимания нет, заходишь в консоль rails c и там играешься
params = ActionController::Parameters.new({a: 1, b: 2})

Alexandr
28.09.2016
16:55:23
Спасибо, мужики. Заработало, вроде :)

Artem
28.09.2016
16:55:35
и пробуешь сделать require, permit, посмотришь на результат

Alexandr
28.09.2016
16:59:24
Ещё на секундочку коллективным мозгом воспользуюсь, ладно?
Мне надо сохранить @email в базу и присвоить его определённому @domain, который в моделе has_many :emails.
Это как-то так делается?
@email.domains « @domain
А то что-то undefined method `domains' for #<Email:0x007f7ec80ab128>

Artem
28.09.2016
17:00:34
@email.domain = @domain
или @domain.emails.create(email_params)

Ivan
28.09.2016
17:01:09
смотря где и на каком этапе ты присваеваешь

Alexandr
28.09.2016
17:01:34
Я сначала засейвил, а потом попробовал присвоить

Ivan
28.09.2016
17:01:35
можно в strong_params добавить метод .merge()

Alexandr
28.09.2016
17:04:32
А, похоже, у меня метод create не в курсе кто такой @domain. Разберусь :) Спасибо ещё раз!
Ребят, понимаю, что задолбал, но я всё ещё сношаюсь с этой формой.
Фишка в том, что мне как-то из этой формы надо передать domain_id, чтобы создаваемый email привязался к домену.
Этот domain_id пользователь при заполнении формы не должен вводить - он его и не знает. Он знает только имя домена и оно есть в params. Соответственно, айдишник, в теории, можно получить по Domain.find_by_domainname(params[:domain]).id
Как сделать так, чтобы значение этой хрени попало в f и передалось методу create в качетсве ;domain_id?
или, может, я изобретаю велосипед и всё делается не так?

Ivan
28.09.2016
20:58:25
Ууужас какой
Ща напишу

Google

Ivan
28.09.2016
20:58:58
Ноут включу

Alexandr
28.09.2016
20:59:44
Согласен, что ужас. Поскольку для верного составления алгоритма, видимо, знаний не хватает, программирую брутфорсом :)

Admin
ERROR: S client not available

Ivan
28.09.2016
21:01:09
domain name юзер вводит, или это все в nested routes?

Alexandr
28.09.2016
21:04:05
nested routes - не знаю что это. У пользователя несколько доменов, в которых он может создавать электронные почты. Соответственно, в базе есть :domains с доменами и :emails, которые belongs_to :domains. Вот хочу для добавления новых email'ов сделать форму. В эту форму пользователь попадает со странички, где видит список всех своих ящиков в этом домене. Нажиает плюсик и переходит на emails/new?domain=kupilby.ru, например. Соответственно, форма уже может знать в каком домене следует создавать ящик
и, по идее, может передать методу create в email_controller айдишник домена. Правильно я мыслю?

Ivan
28.09.2016
21:06:08
покажи роуты (в пэйстбин), а лучше, если есть возможность гитхаб реп
нужно в хэш strong_params смержить айдишник domain'a
вот покажешь роуты - скажу где его взять

Alexandr
28.09.2016
21:07:25
В приват, ок? :)

Ivan
28.09.2016
21:07:33
okey-okey

Alexandr
28.09.2016
21:17:27
:)

Eugene
29.09.2016
08:38:18
класс

Aleserche
29.09.2016
08:38:57
внезапно!

Serhii
29.09.2016
16:26:51
hash['country']['city']['street'] как сделать так что бы в случае отсутствия 'city' выдавало nil, а не ексепшин? ну помимо кучи ифов

Artem
29.09.2016
16:29:24
dig

Serhii
29.09.2016
16:40:52
?

Ivan
29.09.2016
16:41:11
Hash#dig
hash.dig('country', 'city', 'street')
Вернет нил, если не будет сити

Google

Serhii
29.09.2016
16:42:46
ооо, это из свеженького!
не попадалось раньше
а с какой версии его добавили?

Artem
29.09.2016
16:43:28
2,3
в более старых версиях через fetch можно сделать

Serhii
29.09.2016
16:45:51
а через фетч как? мож есть готовый кусок кода под рукой..

Artem
29.09.2016
16:46:50
hash['country'].fetch('city', {})['street']
выглядит конечно так себе

Serhii
29.09.2016
16:49:00
я еще через дефолт валью придумал.. типа hash.default={} и тогда в случае промаха выдает {}
ну тоже изврат имхо ))

Artem
29.09.2016
16:50:01
ну еслиу тебя есть контроль над созданием коллекции, то это вариант
я fetch иногда использую чтоб из params вытащить безопасно