
Nikolai
15.06.2017
14:21:17
Эта команда добавит их в предыдущий коммит просто

v
15.06.2017
14:22:11
ну или git rebase -i, если ты такой любитель крупных коммитов?

Konstantin
15.06.2017
14:22:43
Ребят, смотрю тут курс Романа, остановился на 21 уроке - там скачали бандл синатры+бутстрапа (он чет безбожно ругался на jquery, - я обновил и бутстрап, и джквери - все заработало)

Google

Nikolai
15.06.2017
14:22:46
Типа - захотел сделать новую фичу, создал новую ветку, в этой ветке делаю первый коммит, а потом в него добавляю изменения при помощи git commit -- amend

Konstantin
15.06.2017
14:22:58
Но чего-то Роман не объяснил, как работают вью

v
15.06.2017
14:23:05
юзай rebase -i, ну

Nikolai
15.06.2017
14:23:34

v
15.06.2017
14:23:46
так и я очем
просто у тебя практика очень самобытная

Andrii
15.06.2017
14:24:05
Konstantin, посмотри следующий урок и все будет яснее

Nikolai
15.06.2017
14:24:09
Одна фича = одна ветка, в которой один коммит с реализацией фичи

v
15.06.2017
14:24:17
обычно подобную технику используют с rebase -i

Konstantin
15.06.2017
14:24:30

Nikolai
15.06.2017
14:24:32
Если фичу поправить надо, то это делается вторым коммитом

Konstantin
15.06.2017
14:25:04

Google

Konstantin
15.06.2017
14:25:05
т.е. по логике я должен был получить только то, что тут выделил красным
но вижу при этом еще и верхний бар, хотя в login_attempt.erb только одна форма....

Nikolai
15.06.2017
14:25:50
Константин, в синатре где-то запрятан общий макет сайта
В рельсах он лежит в app/views/layouts/application.rb

Konstantin
15.06.2017
14:26:22
просто в предыдущих уроках при загрузке нового "вида" - он загружался полностью, а старый удалялся

Nikolai
15.06.2017
14:26:28
А где в синатре, я уже не помню
Не, это нормально, то что ты сейчас видишь

Konstantin
15.06.2017
14:27:15
я понимаю, но как это работает? почему эта форма подгружается в главный лэйяут?

Nikolai
15.06.2017
14:27:19
Чтобы менюшка эта не появлялась, её надо вычистить, уже не помню где

Konstantin
15.06.2017
14:27:31

Nikolai
15.06.2017
14:27:34
Вложенные лэйауты
Да
54 строка
В неё вместо yield попадает всё, что в app.rb
И дальше в зависимости от маршрута

Denis
15.06.2017
14:28:34
Черная дыра какая-то.

Nikolai
15.06.2017
14:28:42
Layout.erb это как бы макет сайта
То представление, которое отображается всегда
А то, что в app.rb - непосредственно страницы сайта
Сделано это ради удобства и ради соблюдения принципа DRY

Google

Nikolai
15.06.2017
14:30:32
Потому как один и тот же код копипастить во все разделы app.rb это не круто

Konstantin
15.06.2017
14:32:03
позвал разраба соседа
он рассказал про yield
спасибо и вам :)

Антон
15.06.2017
14:43:36
def admin_layout
{:layout, ‘empty’}
end

Denis
15.06.2017
14:45:12
не надо никакой вьюхи
достаточно в контролере прописать layout :false

Антон
15.06.2017
14:46:04
f^ ye lf^ njxyj
а, точно!

Konstantin
15.06.2017
14:46:42
чет я не понял... а где в app.rb вообще строчка про загрузку layout.erb
или синатра по дефолту грузит этот файл?

Антон
15.06.2017
14:52:09

Denis
15.06.2017
17:19:33
Может, кто подсказать как лучше сделать:
Есть STI. Допустим вагон, с дочерними классами купе и плацкарт. Есть один на всех контроллер с экшн create через базовый класс:
def create
@carriage = Carriage.new(carriage_params)
end
Есть params
def carriage_params
params.require(:carriage).permit(:train_id, :top_seats, :bottom_seats,
:side_top_seats, :side_bottom_seats,
:seats, :type)
end
Добавление вагона осуществляется через одну форму (form_for(carriage.becomes(Carriage)) do |f|
) в которой поля соответственно под все типы мест.
Собственно вопрос в чем - как по правильному запретить добавление мест не соответствующих типу вагона, валидацией на absence в каждом дочернем классе? Или есть вариант поизящнее.
Ну, финкнетаны, кто как делал?

pchellovod
15.06.2017
17:23:49
примерно вот такие воспоминания у меня от этого

Denis
15.06.2017
17:23:58
Вспоминай как делал!

pchellovod
15.06.2017
17:24:28
надо смареть, а я уже не могу

Denis
15.06.2017
17:24:44
Давай я посмотрю.

pchellovod
15.06.2017
17:25:19
водноимённом гитхабе должно быть

Google

pchellovod
15.06.2017
17:25:41
pchellovod там и всё такое

Denis
15.06.2017
17:25:46
ну вот у тебя никак не валидируется
посмотрел

pchellovod
15.06.2017
17:26:07
ну и отправляй как есть, параллельно задавая вопрос

Denis
15.06.2017
17:27:39
так я и задал, молчит пока. До этогоу меня вариант был через permitted_params для каждого дочеренго класса, принято, но мол можно сделать изящнее - изящнее то можно, гляжу так и делают, не обратив внимания, что в итоге может придти нечто большее, чем ждали.

Klim
15.06.2017
17:28:24
по- хорошему, джиэсом наверное. типа чекбокса и дизэйблить неподходящие кнопки.

Denis
15.06.2017
17:28:40
джиэкс пока не проходили! : )
понятно, что потом поля формы будут скрываться в зависимости от выбранного типа

Admin
ERROR: S client not available

Klim
15.06.2017
17:31:02
вариант проверять тип вагона в шоу и рендерить соответствующий паршиал.

Denis
15.06.2017
17:31:29
речь о создании
До этого у меня было так:
def create
@carriage = carriage_class.new(carriage_params(carriage_class))
end
def carriage_class
@carriage_class ||= params[:carriage][:type].constantize
end
def carriage_params(carriage_class)
params.require(:carriage).permit(carriage_class.permitted_params)
end
В базовом классе:
def self.permitted_params
[:type, :train_id, :number]
end
B дочерних свои permitted_params
Ментор говорит, что не место permitted_params в моделях.
В общем сказали не выпендриваться и делать как все:(

Рaukoff
15.06.2017
17:54:12
А в контроллер засунуть что не позволяет

Denis
15.06.2017
17:54:45
Контроллер один для всех и базовго и дочерних классов.

Рaukoff
15.06.2017
17:58:03
На слух сложно..но парамсы в модели точно не должны быть

Denis
15.06.2017
17:59:10
Ну тогда получается только валидацией проверять, с одним общим парамс для всех.

Рaukoff
15.06.2017
17:59:56
Я хз Чо там у тебя..ну сделай ввлидатор ещё

Denis
15.06.2017
18:00:17
что у меня там я выше написал

Рaukoff
15.06.2017
18:01:12
Мало написал..либо несколько парамсов для всех классов

Google

Рaukoff
15.06.2017
18:03:37
В конце концов добавляешь проверку что в парамсах и все..один if
Если 2 вагона конечно

Denis
15.06.2017
18:05:25
Есть класс вагон и 4 подкласса со своими аттрибутами, это уже не один if

Рaukoff
15.06.2017
18:07:22
Есть ещё case

Denis
15.06.2017
18:07:38
завтра дочерних классов станет 8

Рaukoff
15.06.2017
18:07:40
Сложно так гадать то
Разбивай create тогда..нафига в одном контроллере

Denis
15.06.2017
18:10:55
Задача такая.

Рaukoff
15.06.2017
18:12:07
Именно 1 контроллером?

Denis
15.06.2017
18:13:02
Ага и созданием инстансов через базовый класс.

Рaukoff
15.06.2017
18:13:38
И в вагоне больше 4 классов быть не может кстати

Denis
15.06.2017
18:13:55
Почему же
Может.

Рaukoff
15.06.2017
18:14:09
Если больше это уже не вагон
Общий Плацкарт купе св
Пздц

Denis
15.06.2017
18:14:52
Купе, сидячий, плацкарт, св, а еще какие-нибудь люкс с одной кроватью, люкс с душем - уже 6 классов

Рaukoff
15.06.2017
18:15:19
Ты когда на поезде ездил

Denis
15.06.2017
18:16:00
Ну в 2008 такие ходили, с душами и двуспальными кроватями и даже с барами внутри, не знаю как сейчас.
при том при всем, что это был такой же вагон как и остальные

Рaukoff
15.06.2017
18:17:35
Ща найду Линк ..может поможет